Fixes nasty kthread bug
authorBarret Rhoden <brho@cs.berkeley.edu>
Fri, 6 May 2011 01:43:41 +0000 (18:43 -0700)
committerKevin Klues <klueska@cs.berkeley.edu>
Thu, 3 Nov 2011 00:36:02 +0000 (17:36 -0700)
commit1b18bbfc26736d20db36ee2ff8e586f23681452b
treea3b6063cbb3d8fbdcba6480d28dba8dcb9e5a655
parent8bbf956b0f358973fa0a81493bf5ec44249c1dfd
Fixes nasty kthread bug

We were freeing the stack we were about to use, which is a bad idea.
Bug showed up as TAILQ corruption (often PFs) in alarm code, and once a
non-empty semaphore in a waiter in sys_block().  The "freed" stack was
being reused for the exact same code path (another sys_block), and
occasionally for other syscalls with a deeper stack (clobbering the LL
item).
kern/src/kthread.c