Minor bug in SCSI definition
Rang, Anton
anton.rang at isilon.com
Thu Nov 13 03:30:45 UTC 2014
Coverity found an issue in this area which I tracked down to the incorrect definition patched below.
The SID_QUAL macro is (((inq_data)->device & 0xE0) >> 5) which extracts the peripheral qualifier.
Per SCSI-2 (draft 10L) table 46, the vendor-specific values are "1XXb".
This probably affects almost nobody, but it will clear up a couple of Coverity warnings.
Anton
Index: sys/cam/scsi/scsi_all.h
===================================================================
--- sys/cam/scsi/scsi_all.h (revision 274352)
+++ sys/cam/scsi/scsi_all.h (working copy)
@@ -1817,7 +1817,7 @@
* reserved for this peripheral
* qualifier.
*/
-#define SID_QUAL_IS_VENDOR_UNIQUE(inq_data) ((SID_QUAL(inq_data) & 0x08) != 0)
+#define SID_QUAL_IS_VENDOR_UNIQUE(inq_data) ((SID_QUAL(inq_data) & 0x04) != 0)
u_int8_t dev_qual2;
#define SID_QUAL2 0x7F
#define SID_LU_CONG 0x40
More information about the freebsd-current
mailing list