diff --git a/sys/alpha/alpha/trap.c b/sys/alpha/alpha/trap.c index 17dcb1491ea..f4af4bab97c 100644 --- a/sys/alpha/alpha/trap.c +++ b/sys/alpha/alpha/trap.c @@ -301,8 +301,8 @@ trap(a0, a1, a2, entry, framep) if (td->td_ucred != p->p_ucred) cred_update_thread(td); if ((p->p_flag & P_WEXIT) && (p->p_singlethread != td)) { - mtx_lock_spin(&sched_lock); PROC_LOCK(p); + mtx_lock_spin(&sched_lock); thread_exit(); /* NOTREACHED */ } diff --git a/sys/amd64/amd64/trap.c b/sys/amd64/amd64/trap.c index 8282416b8ea..fddb5176b36 100644 --- a/sys/amd64/amd64/trap.c +++ b/sys/amd64/amd64/trap.c @@ -273,8 +273,8 @@ trap(frame) * But check if we are the single thread first! */ if ((p->p_flag & P_WEXIT) && (p->p_singlethread != td)) { + PROC_LOCK(p); /* check if thisis really needed */ mtx_lock_spin(&sched_lock); - PROC_LOCK(p); thread_exit(); /* NOTREACHED */ } diff --git a/sys/i386/i386/trap.c b/sys/i386/i386/trap.c index 8282416b8ea..fddb5176b36 100644 --- a/sys/i386/i386/trap.c +++ b/sys/i386/i386/trap.c @@ -273,8 +273,8 @@ trap(frame) * But check if we are the single thread first! */ if ((p->p_flag & P_WEXIT) && (p->p_singlethread != td)) { + PROC_LOCK(p); /* check if thisis really needed */ mtx_lock_spin(&sched_lock); - PROC_LOCK(p); thread_exit(); /* NOTREACHED */ } diff --git a/sys/ia64/ia64/trap.c b/sys/ia64/ia64/trap.c index 09d824f9a81..74dfebff7a4 100644 --- a/sys/ia64/ia64/trap.c +++ b/sys/ia64/ia64/trap.c @@ -337,7 +337,7 @@ trap(int vector, int imm, struct trapframe *framep) cred_update_thread(td); if ((p->p_flag & P_WEXIT) && (p->p_singlethread != td)) { mtx_lock_spin(&sched_lock); - thread_exit(); + thread_exit(); /* XXXKSE need proc lock? */ /* NOTREACHED */ } } else { diff --git a/sys/sparc64/sparc64/trap.c b/sys/sparc64/sparc64/trap.c index f39d2f6a4c5..2fe9bb38fee 100644 --- a/sys/sparc64/sparc64/trap.c +++ b/sys/sparc64/sparc64/trap.c @@ -193,7 +193,7 @@ trap(struct trapframe *tf) cred_update_thread(td); if ((p->p_flag & P_WEXIT) && (p->p_singlethread != td)) { mtx_lock_spin(&sched_lock); - thread_exit(); + thread_exit(); /* XXXKSE need proc lock? */ /* NOTREACHED */ } } else {