diff options
author | mav <mav@FreeBSD.org> | 2009-09-22 22:23:52 +0000 |
---|---|---|
committer | mav <mav@FreeBSD.org> | 2009-09-22 22:23:52 +0000 |
commit | d9e3a566ae47c5b64bbb91a10da0bf1879f452cd (patch) | |
tree | 8d559949006189a789d616baa86b38337c649614 /sys/cam | |
parent | d58971bf9adc3843c8542e8df212ae7e4489283b (diff) | |
download | FreeBSD-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.c | 7 |
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, |