summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormav <mav@FreeBSD.org>2015-09-12 20:45:09 +0000
committermav <mav@FreeBSD.org>2015-09-12 20:45:09 +0000
commit194fd9ab33d84b993b033e814b96f9bca13eef1d (patch)
tree31c88ae84b7bfa9f1d8d9485c73f37bbd234cc31
parent7947a17ff4188302ba3ff158c5e1bdaed813db6d (diff)
downloadFreeBSD-src-194fd9ab33d84b993b033e814b96f9bca13eef1d.zip
FreeBSD-src-194fd9ab33d84b993b033e814b96f9bca13eef1d.tar.gz
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 253e28e..4f8909c 100644
--- a/sys/cam/scsi/scsi_all.h
+++ b/sys/cam/scsi/scsi_all.h
@@ -1666,6 +1666,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