summaryrefslogtreecommitdiffstats
path: root/sys/cam
diff options
context:
space:
mode:
authormav <mav@FreeBSD.org>2009-09-22 22:23:52 +0000
committermav <mav@FreeBSD.org>2009-09-22 22:23:52 +0000
commitd9e3a566ae47c5b64bbb91a10da0bf1879f452cd (patch)
tree8d559949006189a789d616baa86b38337c649614 /sys/cam
parentd58971bf9adc3843c8542e8df212ae7e4489283b (diff)
downloadFreeBSD-src-d9e3a566ae47c5b64bbb91a10da0bf1879f452cd.zip
FreeBSD-src-d9e3a566ae47c5b64bbb91a10da0bf1879f452cd.tar.gz
MFp4:
If on sense request device returns no sence, give up and return, or we may loop forever.
Diffstat (limited to 'sys/cam')
-rw-r--r--sys/cam/cam_periph.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/sys/cam/cam_periph.c b/sys/cam/cam_periph.c
index c4e0b04..9137c55 100644
--- a/sys/cam/cam_periph.c
+++ b/sys/cam/cam_periph.c
@@ -1034,8 +1034,13 @@ camperiphdone(struct cam_periph *periph, union ccb *done_ccb)
cam_error_print(saved_ccb, CAM_ESF_ALL,
CAM_EPF_ALL);
#endif
- xpt_done_ccb = TRUE;
+ } else {
+ saved_ccb->ccb_h.status &=
+ ~CAM_STATUS_MASK;
+ saved_ccb->ccb_h.status |=
+ CAM_AUTOSENSE_FAIL;
}
+ xpt_done_ccb = TRUE;
}
}
bcopy(done_ccb->ccb_h.saved_ccb_ptr, done_ccb,
OpenPOWER on IntegriCloud