diff options
author | marius <marius@FreeBSD.org> | 2009-05-10 20:14:19 +0000 |
---|---|---|
committer | marius <marius@FreeBSD.org> | 2009-05-10 20:14:19 +0000 |
commit | 57dc3a1951c15260f0a8077e7f5f59b15a42e261 (patch) | |
tree | 9e7d9c7f52ceb204dc8c85e6703c1f5923ead27e /sys/dev/isp | |
parent | 51f122997d95d99a2b0e68444995323789c9da37 (diff) | |
download | FreeBSD-src-57dc3a1951c15260f0a8077e7f5f59b15a42e261.zip FreeBSD-src-57dc3a1951c15260f0a8077e7f5f59b15a42e261.tar.gz |
Change uses of the struct ccb_hdr timeout_ch missed when isp(4) was
adapted to MPSAFE cam(4) to a isp(4) specific callout structure.
Thanks to Florian Smeets for providing access to a machine exhibiting
this problem for debugging.
Approved by: mjacob
MFC after: 3 days
Diffstat (limited to 'sys/dev/isp')
-rw-r--r-- | sys/dev/isp/isp_freebsd.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/sys/dev/isp/isp_freebsd.c b/sys/dev/isp/isp_freebsd.c index 2e7981f..beb8fa1 100644 --- a/sys/dev/isp/isp_freebsd.c +++ b/sys/dev/isp/isp_freebsd.c @@ -1988,7 +1988,8 @@ isp_watchdog_work(ispsoftc_t *isp, XS_T *xs) isp_done(xs); } else { XS_CMD_C_WDOG(xs); - xs->ccb_h.timeout_ch = timeout(isp_watchdog, xs, hz); + callout_reset(&PISP_PCMD((union ccb *)xs)->wdog, hz, + isp_watchdog, xs); XS_CMD_S_GRACE(xs); isp->isp_sendmarker |= 1 << XS_CHANNEL(xs); } @@ -3004,7 +3005,7 @@ isp_done(struct ccb_scsiio *sccb) XS_CMD_S_DONE(sccb); if (XS_CMD_WDOG_P(sccb) == 0) { - untimeout(isp_watchdog, sccb, sccb->ccb_h.timeout_ch); + callout_stop(&PISP_PCMD(sccb)->wdog); if (XS_CMD_GRACE_P(sccb)) { isp_prt(isp, ISP_LOGDEBUG2, "finished command on borrowed time"); |