In the syncer, drop the sync mutex while patting the watchdog.
Some watchdog drivers (like ipmi) need to sleep while patting the watchdog. See sys/dev/ipmi/ipmi.c:ipmi_wd_event(), which calls malloc(M_WAITOK). Submitted by: asomers MFC after: 1 month Sponsored by: Spectra Logic MFSpectraBSD: 637548 on 2012/10/04
This commit is contained in:
parent
2a6acc2651
commit
eba83cccb3
@ -1863,8 +1863,15 @@ sched_sync(void)
|
||||
continue;
|
||||
}
|
||||
|
||||
if (first_printf == 0)
|
||||
if (first_printf == 0) {
|
||||
/*
|
||||
* Drop the sync mutex, because some watchdog
|
||||
* drivers need to sleep while patting
|
||||
*/
|
||||
mtx_unlock(&sync_mtx);
|
||||
wdog_kern_pat(WD_LASTVAL);
|
||||
mtx_lock(&sync_mtx);
|
||||
}
|
||||
|
||||
}
|
||||
if (syncer_state == SYNCER_FINAL_DELAY && syncer_final_iter > 0)
|
||||
|
Loading…
x
Reference in New Issue
Block a user