On Thu, 4 Mar 2004, Brian Gerst wrote:
This patch fixes two errors in fixup_exception() for PnP BIOS faults:
- Check for the correct segments used for the BIOS
- Fix asm constraints so that EIP and ESP are properly reloaded
I'm almost certain that you should NOT use "g" as a constraint, since that allows the address to be on the stack frame, so when we compile without frame pointers and the compiler uses a %esp-relative thing for the branch address, that will totally screw up when we just re-loaded %esp inside the asm.
Can you use "r" instead, and test that it all works for you, and send an updated patch? Or just explain why I'm wrong.
Linus