Fixes sysenter stack pointer bug
authorBarret Rhoden <brho@cs.berkeley.edu>
Sat, 24 Oct 2009 22:52:17 +0000 (15:52 -0700)
committerKevin Klues <klueska@cs.berkeley.edu>
Mon, 26 Oct 2009 08:29:25 +0000 (09:29 +0100)
commitd1bbe6a76f8b046e83146d16c4cfed6f7d637997
treebbfd8504e703c0218461bdf6044b011c3200918d
parente1edf3728d6b5eb99a0b3c6d247c1c091a6984fb
Fixes sysenter stack pointer bug

Sysenter needs to have interrupts turned on before calling sysexit,
during which it needs to have a good stack pointer in case an interrupt
comes in.  If this fails, the interrupt mechanism will use the current
stack pointer (often in the struct proc!) as the kernel stack and start
clobbering things.  This manifested itself as a proc that was
incorrectly locked.
kern/arch/i386/env.c
kern/arch/i386/trapentry.S