summaryrefslogtreecommitdiffstats
path: root/sys/cam
diff options
context:
space:
mode:
authormav <mav@FreeBSD.org>2012-03-31 11:23:09 +0000
committermav <mav@FreeBSD.org>2012-03-31 11:23:09 +0000
commit4409a9b5ecf048e2cdd711cd1dbb42b8d6501e54 (patch)
tree32279f36434b36cccde1882c6273c91cd6275541 /sys/cam
parent03c053c63d15d0b1bcfd72bc3c456b15fcd9f088 (diff)
downloadFreeBSD-src-4409a9b5ecf048e2cdd711cd1dbb42b8d6501e54.zip
FreeBSD-src-4409a9b5ecf048e2cdd711cd1dbb42b8d6501e54.tar.gz
Be more conservative in using READ CAPACITY(16) command. Previous code
checked PROTECT bit in INQUIRY data for all SPC devices, while it is defined only since SPC-3. But there are some SPC-2 USB devices were reported, that have PROTECT bit set, return no error for READ CAPACITY(16) command, but return wrong sector count value in response. MFC after: 3 days
Diffstat (limited to 'sys/cam')
-rw-r--r--sys/cam/scsi/scsi_da.c4
1 files changed, 1 insertions, 3 deletions
diff --git a/sys/cam/scsi/scsi_da.c b/sys/cam/scsi/scsi_da.c
index fe7a109..a437d37 100644
--- a/sys/cam/scsi/scsi_da.c
+++ b/sys/cam/scsi/scsi_da.c
@@ -1631,9 +1631,7 @@ daregister(struct cam_periph *periph, void *arg)
softc->minimum_cmd_size = 16;
/* Predict whether device may support READ CAPACITY(16). */
- if (SID_ANSI_REV(&cgd->inq_data) >= SCSI_REV_SPC3 ||
- (SID_ANSI_REV(&cgd->inq_data) >= SCSI_REV_SPC &&
- (cgd->inq_data.spc3_flags & SPC3_SID_PROTECT))) {
+ if (SID_ANSI_REV(&cgd->inq_data) >= SCSI_REV_SPC3) {
softc->flags |= DA_FLAG_CAN_RC16;
softc->state = DA_STATE_PROBE2;
}
OpenPOWER on IntegriCloud