Fixes sysenter stack pointer bug
authorBarret Rhoden <brho@cs.berkeley.edu>
Sat, 24 Oct 2009 22:52:17 +0000 (15:52 -0700)
committerBarret Rhoden <brho@cs.berkeley.edu>
Sat, 24 Oct 2009 22:52:17 +0000 (15:52 -0700)
commit6048bdf6e9efbca60d84553eb828a6998912ce97
tree66baca2460cdd52f749021f49aaee144baba5d27
parent88725d170975b1c8cd4140a01ba0c7e79891e151
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/trap.c
kern/arch/i386/trapentry.S