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
This commit is contained in:
Marius Strobl 2009-05-10 20:14:19 +00:00
parent 8d30f381ef
commit 0ec607133b

View File

@ -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");