diff --git a/sys/kern/kern_exit.c b/sys/kern/kern_exit.c index 458912a504d..1b1e52b06bd 100644 --- a/sys/kern/kern_exit.c +++ b/sys/kern/kern_exit.c @@ -355,7 +355,6 @@ exit1(struct thread *td, int rval, int signo) */ PROC_LOCK(p); stopprofclock(p); - p->p_flag &= ~(P_TRACED | P_PPWAIT | P_PPTRACE); p->p_ptevents = 0; /* @@ -458,6 +457,9 @@ exit1(struct thread *td, int rval, int signo) sx_xunlock(&allproc_lock); sx_xlock(&proctree_lock); + PROC_LOCK(p); + p->p_flag &= ~(P_TRACED | P_PPWAIT | P_PPTRACE); + PROC_UNLOCK(p); /* * Reparent all children processes: