summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjhb <jhb@FreeBSD.org>2002-07-11 22:13:33 +0000
committerjhb <jhb@FreeBSD.org>2002-07-11 22:13:33 +0000
commit30b152864c0ce8638b7e7d22b837cc1838029dbd (patch)
treef6acd7d338917d8f03f8b0da324b2fc845e411e0
parent088603aa7d4a2d4e79919c149f6325bfd66289a8 (diff)
downloadFreeBSD-src-30b152864c0ce8638b7e7d22b837cc1838029dbd.zip
FreeBSD-src-30b152864c0ce8638b7e7d22b837cc1838029dbd.tar.gz
thread_exit() requires PROC_LOCK to be held, so lock it.
-rw-r--r--sys/sparc64/sparc64/trap.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/sys/sparc64/sparc64/trap.c b/sys/sparc64/sparc64/trap.c
index 2fe9bb3..66fb141 100644
--- a/sys/sparc64/sparc64/trap.c
+++ b/sys/sparc64/sparc64/trap.c
@@ -192,8 +192,9 @@ trap(struct trapframe *tf)
if (td->td_ucred != p->p_ucred)
cred_update_thread(td);
if ((p->p_flag & P_WEXIT) && (p->p_singlethread != td)) {
+ PROC_LOCK(p);
mtx_lock_spin(&sched_lock);
- thread_exit(); /* XXXKSE need proc lock? */
+ thread_exit();
/* NOTREACHED */
}
} else {
OpenPOWER on IntegriCloud