On Tue, May 7, 2019 at 2:24 PM Steven Rostedt rostedt@goodmis.org wrote:
And there's been several times I forget that regs->sp can not be read directly. Especially most of my bug reports are for x86_64 these days. But when I had that seldom x86_32 one, and go debugging, I would print out "regs->sp" and then the system would crash. And I spend some time wondering why?
It's been a bane of mine for some time.
Guys, I have basically a one-liner patch for your hangups.
It's called "rename 'sp' to 'user_sp' on x86-32".
Then we make the 'sp' field on x86-64 be a union, so that you can call it user_sp or sp as you wish.
Yeah, it's really more than one line, because obviously the users will need chaning, but honestly, that would be a _real_ cleanup. Make the register match what it actually is.
And it doesn't mess up the stack frame, and it doesn't change the entry code. It just reminds people that the entry is the USER stack pointer.
Problem solved.
Linus