]> git.kernelconcepts.de Git - karo-tx-linux.git/commit
x86, realmode: Remove indirect jumps in trampoline_32 and wakeup_asm
authorH. Peter Anvin <hpa@linux.intel.com>
Tue, 8 May 2012 18:22:36 +0000 (21:22 +0300)
committerH. Peter Anvin <hpa@linux.intel.com>
Tue, 8 May 2012 18:48:03 +0000 (11:48 -0700)
commit968ff9ee56f1e3ed4ff4a6d10185865dc77d8f7e
tree203601668b2e0ee01b9acdc19ef4732c46c0fe72
parent056a43a6d3ab903a798d8ee4435ad67d6fccc3e6
x86, realmode: Remove indirect jumps in trampoline_32 and wakeup_asm

Remove indirect jumps in trampoline_32.S and the 32-bit part of
wakeup_asm.S.  There exist systems which are known to do weird
things if an SMI comes in right after a mode switch, and the
safest way to deal with it is to always follow with a simple
absolute far jump.  In the 64-bit code we then to a register
indirect near jump; follow that pattern for the 32-bit code.

Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
Link: http://lkml.kernel.org/r/1336501366-28617-14-git-send-email-jarkko.sakkinen@intel.com
arch/x86/realmode/rm/trampoline_32.S
arch/x86/realmode/rm/wakeup/wakeup_asm.S