]> CyberLeo.Net >> Repos - FreeBSD/stable/9.git/commit
MFC r239251:
authorkib <kib@ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f>
Wed, 22 Aug 2012 19:36:47 +0000 (19:36 +0000)
committerkib <kib@ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f>
Wed, 22 Aug 2012 19:36:47 +0000 (19:36 +0000)
commit684a8c9f8c52dcecf593044034571d1b3f431339
tree04d415d4a29fdb5cc4161e388af1c184fc8dbb32
parent3f292bb6a7064bd9811a2a7dc48dcd3f00a34db8
MFC r239251:
Real hardware, as opposed to QEMU, does not allow to have a call gate
in long mode which transfers control to 32bit code segment. Unbreak
the lcall $7,$0 implementation on amd64 by putting the 64bit user code
segment' selector into call gate, and execute the 64bit trampoline
which converts the return frame into 32bit format and switches back to
32bit mode for executing int $0x80 trampoline.

git-svn-id: svn://svn.freebsd.org/base/stable/9@239578 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f
sys/amd64/ia32/ia32_sigtramp.S
sys/amd64/ia32/ia32_syscall.c