Lawrence Farr wrote:
I couldn't get this to apply cleanly against 7, is it safe to use rev
1.48 on 7? I have 3 machines here that hang whilst dumping and I'd
like to test the patch.
For RELENG_7, I'm using the attached. Apply it from /usr,
Michael
*** src/sys/kern/subr_sleepqueue.c.orig Thu Mar 6 11:13:14 2008
--- src/sys/kern/subr_sleepqueue.c Fri Mar 14 21:58:58 2008
***************
*** 403,414 ****
mtx_unlock(&ps->ps_mtx);
}
/*
! * Lock sleepq chain before unlocking proc
! * without this, we could lose a race.
*/
mtx_lock_spin(&sc->sc_lock);
PROC_UNLOCK(p);
thread_lock(td);
if (ret == 0) {
if (!(td->td_flags & TDF_INTERRUPT)) {
sleepq_switch(wchan);
--- 403,417 ----
mtx_unlock(&ps->ps_mtx);
}
/*
! * Lock the per-process spinlock prior to dropping the PROC_LOCK
! * to avoid a signal delivery race. PROC_LOCK, PROC_SLOCK, and
! * thread_lock() are currently held in tdsignal().
*/
+ PROC_SLOCK(p);
mtx_lock_spin(&sc->sc_lock);
PROC_UNLOCK(p);
thread_lock(td);
+ PROC_SUNLOCK(p);
if (ret == 0) {
if (!(td->td_flags & TDF_INTERRUPT)) {
sleepq_switch(wchan);
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to "[EMAIL PROTECTED]"