summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormav <mav@FreeBSD.org>2015-10-05 09:08:06 +0000
committermav <mav@FreeBSD.org>2015-10-05 09:08:06 +0000
commit89e8995fe2d4a54327478d0665ca3aba3c8eede4 (patch)
tree187490d026a9dfcc03bf2579a77301367aec1a84
parent94d587a93b9592befaec433139ea27c7a95a842c (diff)
downloadFreeBSD-src-89e8995fe2d4a54327478d0665ca3aba3c8eede4.zip
FreeBSD-src-89e8995fe2d4a54327478d0665ca3aba3c8eede4.tar.gz
MFC r287724: Check for obsolete NUL bin in CSCD descriptor.
-rw-r--r--sys/cam/ctl/ctl_tpc_local.c3
-rw-r--r--sys/cam/scsi/scsi_all.h1
2 files changed, 3 insertions, 1 deletions
diff --git a/sys/cam/ctl/ctl_tpc_local.c b/sys/cam/ctl/ctl_tpc_local.c
index 5f438af..ce7c3e8 100644
--- a/sys/cam/ctl/ctl_tpc_local.c
+++ b/sys/cam/ctl/ctl_tpc_local.c
@@ -282,7 +282,8 @@ tpcl_resolve(struct ctl_softc *softc, int init_port,
uint64_t lunid = UINT64_MAX;
if (cscd->type_code != EC_CSCD_ID ||
- (cscd->luidt_pdt & EC_LUIDT_MASK) != EC_LUIDT_LUN)
+ (cscd->luidt_pdt & EC_LUIDT_MASK) != EC_LUIDT_LUN ||
+ (cscd->luidt_pdt & EC_NUL) != 0)
return (lunid);
cscdid = (struct scsi_ec_cscd_id *)cscd;
diff --git a/sys/cam/scsi/scsi_all.h b/sys/cam/scsi/scsi_all.h
index 375fcbe..f860624 100644
--- a/sys/cam/scsi/scsi_all.h
+++ b/sys/cam/scsi/scsi_all.h
@@ -1669,6 +1669,7 @@ struct scsi_ec_cscd
uint8_t type_code;
#define EC_CSCD_EXT 0xff
uint8_t luidt_pdt;
+#define EC_NUL 0x20
#define EC_LUIDT_MASK 0xc0
#define EC_LUIDT_LUN 0x00
#define EC_LUIDT_PROXY_TOKEN 0x40
OpenPOWER on IntegriCloud