summaryrefslogtreecommitdiffstats
path: root/sys/dev/aic
diff options
context:
space:
mode:
authorluoqi <luoqi@FreeBSD.org>1999-10-28 05:28:00 +0000
committerluoqi <luoqi@FreeBSD.org>1999-10-28 05:28:00 +0000
commit15b14d33bd22da5cda5fec13f2695002fea618e2 (patch)
tree537f0aca07ea2accfcb6a5d3c59a2c3dd71d1be2 /sys/dev/aic
parenta2279bbc104b0c6509565d3e8ec0d48bd335bc93 (diff)
downloadFreeBSD-src-15b14d33bd22da5cda5fec13f2695002fea618e2.zip
FreeBSD-src-15b14d33bd22da5cda5fec13f2695002fea618e2.tar.gz
Bug fix: allow reset device command to complete.
Diffstat (limited to 'sys/dev/aic')
-rw-r--r--sys/dev/aic/aic.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/sys/dev/aic/aic.c b/sys/dev/aic/aic.c
index 3018c95..341c7e1 100644
--- a/sys/dev/aic/aic.c
+++ b/sys/dev/aic/aic.c
@@ -1105,7 +1105,7 @@ aic_timeout(void *arg)
printf("ccb %p - timed out", ccb);
if (aic->nexus && aic->nexus != scb)
printf(", nexus %p", aic->nexus->ccb);
- printf("\n");
+ printf(", phase %x\n", aic_inb(aic, SCSISIGI));
s = splcam();
@@ -1254,6 +1254,10 @@ aic_intr(void *arg)
ccb = scb->ccb;
ccb->ccb_h.status = CAM_UNEXP_BUSFREE;
aic_done(aic, scb);
+ } else if (scb->flags & SCB_DEVICE_RESET) {
+ ccb = scb->ccb;
+ ccb->ccb_h.status = CAM_REQ_CMP;
+ aic_done(aic, scb);
} else if (scb->flags & SCB_SENSE) {
/* autosense request */
aic->flags &= ~AIC_BUSFREE_OK;
OpenPOWER on IntegriCloud