From 2925cbe5692c47985eccd4d2cb900524410f228d Mon Sep 17 00:00:00 2001 From: John Baldwin Date: Fri, 1 Dec 2000 16:59:02 +0000 Subject: [PATCH] Protect p_stat with sched_lock. --- sys/kern/kern_exit.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/sys/kern/kern_exit.c b/sys/kern/kern_exit.c index 1c03e7bbc52..69f526c6c1b 100644 --- a/sys/kern/kern_exit.c +++ b/sys/kern/kern_exit.c @@ -439,7 +439,10 @@ loop: continue; nfound++; + mtx_enter(&sched_lock, MTX_SPIN); if (p->p_stat == SZOMB) { + mtx_exit(&sched_lock, MTX_SPIN); + /* charge childs scheduling cpu usage to parent */ if (curproc->p_pid != 1) { curproc->p_estcpu = @@ -542,6 +545,7 @@ loop: } if (p->p_stat == SSTOP && (p->p_flag & P_WAITED) == 0 && (p->p_flag & P_TRACED || uap->options & WUNTRACED)) { + mtx_exit(&sched_lock, MTX_SPIN); p->p_flag |= P_WAITED; q->p_retval[0] = p->p_pid; #ifdef COMPAT_43 @@ -558,6 +562,7 @@ loop: error = 0; return (error); } + mtx_exit(&sched_lock, MTX_SPIN); } if (nfound == 0) return (ECHILD);