Index: src/sys/kern/kern_sig.c =================================================================== RCS file: /home/ncvs/src/sys/kern/kern_sig.c,v retrieving revision 1.275 diff -u -r1.275 kern_sig.c --- src/sys/kern/kern_sig.c 5 Apr 2004 21:03:35 -0000 1.275 +++ src/sys/kern/kern_sig.c 10 Apr 2004 12:11:28 -0000 @@ -2020,8 +2020,8 @@ PROC_LOCK(p->p_pptr); psignal(p->p_pptr, SIGCHLD); PROC_UNLOCK(p->p_pptr); + stop(p); mtx_lock_spin(&sched_lock); - stop(p); /* uses schedlock too eventually */ thread_suspend_one(td); PROC_UNLOCK(p); DROP_GIANT(); @@ -2217,7 +2217,7 @@ * Put the argument process into the stopped state and notify the parent * via wakeup. Signals are handled elsewhere. The process must not be * on the run queue. Must be called with the proc p locked and the scheduler - * lock held. + * lock NOT held, since wakeup() picks up sched_lock as needed. */ static void stop(struct proc *p)