--- //depot/vendor/freebsd/src/sys/kern/subr_sleepqueue.c 2007/06/12 23:32:21 +++ //depot/user/attilio/attilio_smpng/kern/subr_sleepqueue.c 2007/09/11 15:43:42 @@ -328,6 +328,7 @@ MPASS((flags & SLEEPQ_TYPE) == sq->sq_type); LIST_INSERT_HEAD(&sq->sq_free, td->td_sleepqueue, sq_hash); } + thread_lock(td); TAILQ_INSERT_TAIL(&sq->sq_blocked[queue], td, td_slpq); td->td_sleepqueue = NULL; td->td_sqqueue = queue; @@ -337,6 +338,7 @@ td->td_flags |= TDF_SINTR; td->td_flags &= ~TDF_SLEEPABORT; } + thread_unlock(td); } /*