Jump stacks before unlocking semaphores
authorBarret Rhoden <brho@cs.berkeley.edu>
Fri, 22 Jul 2016 19:07:17 +0000 (15:07 -0400)
committerBarret Rhoden <brho@cs.berkeley.edu>
Wed, 27 Jul 2016 16:52:43 +0000 (12:52 -0400)
commitf15da24e4d8dc51ad02f8b508842661dbe0a9bfc
treef6a49ef85f67ec8ace6137a012cd8755b1f0edff
parent8c99aa704a1cdcb6257131a16ac93bfbe002d982
Jump stacks before unlocking semaphores

This popped up as a potential problem with NMIs, where a poorly timed
NMI could cause corruption.  It turns out that this was *a* problem, not
*the* problem.

As the comments note, this is only a problem for NMIs on architectures
that don't use the same stack.  x86_64 mostly requires a different stack
for NMIs (for other reasons), but other architectures might not have the
same requirements.  Better safe than sorry.

Signed-off-by: Barret Rhoden <brho@cs.berkeley.edu>
kern/src/kthread.c