diff options
author | mjacob <mjacob@FreeBSD.org> | 2010-06-05 00:55:21 +0000 |
---|---|---|
committer | mjacob <mjacob@FreeBSD.org> | 2010-06-05 00:55:21 +0000 |
commit | b471c2cbb24dfa51bb8d22415e13779e19f24c02 (patch) | |
tree | 21a337ea0bf33e8122dbd17e947f98638f9ad0b8 /sys/dev/isp/isp_freebsd.c | |
parent | 624cd0ffbf8ad2959f6f1aacf547da8d1c827d1a (diff) | |
download | FreeBSD-src-b471c2cbb24dfa51bb8d22415e13779e19f24c02.zip FreeBSD-src-b471c2cbb24dfa51bb8d22415e13779e19f24c02.tar.gz |
I was getting panics in sleepq_add for the second sleep in isp_kthread.
I don't know why- but it occurred to me in looking at the second sleep
is that all I want is a pause- not an actual sleep. So do that instead.
MFC after: 2 weeks
Diffstat (limited to 'sys/dev/isp/isp_freebsd.c')
-rw-r--r-- | sys/dev/isp/isp_freebsd.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/sys/dev/isp/isp_freebsd.c b/sys/dev/isp/isp_freebsd.c index eaeda55..4220d1f 100644 --- a/sys/dev/isp/isp_freebsd.c +++ b/sys/dev/isp/isp_freebsd.c @@ -4139,7 +4139,9 @@ isp_kthread(void *arg) */ if (slp == 0 && fc->hysteresis) { isp_prt(isp, ISP_LOGSANCFG|ISP_LOGDEBUG0, "%s: Chan %d sleep hysteresis ticks %d", __func__, chan, fc->hysteresis * hz); - (void) msleep(&isp_fabric_hysteresis, &isp->isp_osinfo.lock, PRIBIO, "ispT", (fc->hysteresis * hz)); + mtx_unlock(&isp->isp_osinfo.lock); + pause("ispt", fc->hysteresis * hz); + mtx_lock(&isp->isp_osinfo.lock); } } mtx_unlock(&isp->isp_osinfo.lock); |