git: vkernel - Fix corrupt tailq (vkernel64 only)
Matthew Dillon
dillon at crater.dragonflybsd.org
Tue Jan 4 15:10:32 PST 2011
commit 74c9628e78f2e1c7d9356b41407b394220745b7e
Author: Matthew Dillon <dillon at apollo.backplane.com>
Date: Tue Jan 4 15:06:59 2011 -0800
vkernel - Fix corrupt tailq (vkernel64 only)
* Properly remove an exiting thread from any tsleep queue it might be
enqueued on (due to tsleep_interlock() use cases) prior to exiting.
* Fixes tailq corruption which can occur with threaded programs.
* Fix is only applicable to vkernel64. All other platforms already
properly remove the thread.
* Assert that an exiting thread has been removed from any sleep queue
before freeing it in kern_exit.c to catch any future cases.
Summary of changes:
sys/kern/kern_exit.c | 2 ++
sys/kern/kern_synch.c | 17 ++++++++++++-----
sys/kern/lwkt_thread.c | 6 ++++--
sys/platform/vkernel64/x86_64/vm_machdep.c | 2 ++
4 files changed, 20 insertions(+), 7 deletions(-)
http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/74c9628e78f2e1c7d9356b41407b394220745b7e
--
DragonFly BSD source repository
More information about the Commits
mailing list