On Fri, May 3, 2019 at 9:21 AM Andy Lutomirski luto@amacapital.net wrote:
So here’s a somewhat nutty suggestion: how about we tweak the 32-bit entry code to emulate the sane 64-bit frame, not just for int3 but always?
What would the code actually end up looking like? I don't necessarily object, since that kernel_stack_pointer() thing certainly looks horrible, but honestly, my suggestion to just pass in the 'struct pt_regs' and let the call emulation fix it up would have also worked, and avoided that bug (and who knows what else might be hiding).
I really think that you're now hitting all the special case magic low-level crap that I wanted to avoid.
Linus