diff options
Diffstat (limited to 'sys')
-rw-r--r-- | sys/cam/scsi/scsi_enc.c | 18 | ||||
-rw-r--r-- | sys/cam/scsi/scsi_enc_safte.c | 10 | ||||
-rw-r--r-- | sys/cam/scsi/scsi_enc_ses.c | 58 |
3 files changed, 37 insertions, 49 deletions
diff --git a/sys/cam/scsi/scsi_enc.c b/sys/cam/scsi/scsi_enc.c index 616df5b..8971e82 100644 --- a/sys/cam/scsi/scsi_enc.c +++ b/sys/cam/scsi/scsi_enc.c @@ -60,9 +60,6 @@ MALLOC_DEFINE(M_SCSIENC, "SCSI ENC", "SCSI ENC buffers"); /* Enclosure type independent driver */ -#define SEN_ID "UNISYS SUN_SEN" -#define SEN_ID_LEN 24 - static d_open_t enc_open; static d_close_t enc_close; static d_ioctl_t enc_ioctl; @@ -630,9 +627,8 @@ enc_log(struct enc_softc *enc, const char *fmt, ...) /* * Is this a device that supports enclosure services? * - * It's a a pretty simple ruleset- if it is device type 0x0D (13), it's - * an ENC device. If it happens to be an old UNISYS SEN device, we can - * handle that too. + * It's a a pretty simple ruleset- if it is device type + * 0x0D (13), it's an ENCLOSURE device. */ #define SAFTE_START 44 @@ -659,13 +655,9 @@ enc_type(struct ccb_getdev *cgd) iqd = (unsigned char *)&cgd->inq_data; buflen = min(sizeof(cgd->inq_data), SID_ADDITIONAL_LENGTH(&cgd->inq_data)); - if (buflen < 8+SEN_ID_LEN) - return (ENC_NONE); if ((iqd[0] & 0x1f) == T_ENCLOSURE) { - if (STRNCMP(&iqd[8], SEN_ID, SEN_ID_LEN) == 0) { - return (ENC_SEN); - } else if ((iqd[2] & 0x7) > 2) { + if ((iqd[2] & 0x7) > 2) { return (ENC_SES); } else { return (ENC_SES_SCSI2); @@ -920,7 +912,6 @@ enc_ctor(struct cam_periph *periph, void *arg) case ENC_SEMB_SAFT: err = safte_softc_init(enc); break; - case ENC_SEN: case ENC_NONE: default: ENC_FREE(enc); @@ -997,9 +988,6 @@ enc_ctor(struct cam_periph *periph, void *arg) case ENC_SES_PASSTHROUGH: tname = "ENC Passthrough Device"; break; - case ENC_SEN: - tname = "UNISYS SEN Device (NOT HANDLED YET)"; - break; case ENC_SAFT: tname = "SAF-TE Compliant Device"; break; diff --git a/sys/cam/scsi/scsi_enc_safte.c b/sys/cam/scsi/scsi_enc_safte.c index 875dec7..3c98ab8 100644 --- a/sys/cam/scsi/scsi_enc_safte.c +++ b/sys/cam/scsi/scsi_enc_safte.c @@ -220,7 +220,7 @@ struct scfg { static char *safte_2little = "Too Little Data Returned (%d) at line %d\n"; #define SAFT_BAIL(r, x) \ if ((r) >= (x)) { \ - ENC_LOG(enc, safte_2little, x, __LINE__);\ + ENC_VLOG(enc, safte_2little, x, __LINE__);\ return (EIO); \ } @@ -269,7 +269,7 @@ safte_process_config(enc_softc_t *enc, struct enc_fsm_state *state, if (error != 0) return (error); if (xfer_len < 6) { - ENC_LOG(enc, "too little data (%d) for configuration\n", + ENC_VLOG(enc, "too little data (%d) for configuration\n", xfer_len); return (EIO); } @@ -435,7 +435,7 @@ safte_process_status(enc_softc_t *enc, struct enc_fsm_state *state, break; default: cache->elm_map[oid].encstat[0] = SES_OBJSTAT_UNSUPPORTED; - ENC_LOG(enc, "Unknown fan%d status 0x%x\n", i, + ENC_VLOG(enc, "Unknown fan%d status 0x%x\n", i, buf[r] & 0xff); break; } @@ -495,7 +495,7 @@ safte_process_status(enc_softc_t *enc, struct enc_fsm_state *state, cfg->enc_status |= SES_ENCSTAT_INFO; break; default: - ENC_LOG(enc, "unknown power supply %d status (0x%x)\n", + ENC_VLOG(enc, "unknown power supply %d status (0x%x)\n", i, buf[r] & 0xff); break; } @@ -543,7 +543,7 @@ safte_process_status(enc_softc_t *enc, struct enc_fsm_state *state, default: cache->elm_map[oid].encstat[0] = SES_OBJSTAT_UNSUPPORTED; - ENC_LOG(enc, "unknown lock status 0x%x\n", + ENC_VLOG(enc, "unknown lock status 0x%x\n", buf[r] & 0xff); break; } diff --git a/sys/cam/scsi/scsi_enc_ses.c b/sys/cam/scsi/scsi_enc_ses.c index 4adb593..047be60 100644 --- a/sys/cam/scsi/scsi_enc_ses.c +++ b/sys/cam/scsi/scsi_enc_ses.c @@ -1175,7 +1175,7 @@ ses_set_timed_completion(enc_softc_t *enc, uint8_t tc_en) err = cam_periph_runccb(ccb, enc_error, ENC_CFLAGS, ENC_FLAGS|SF_QUIET_IR, NULL); if (ccb->ccb_h.status != CAM_REQ_CMP) { - ENC_LOG(enc, "Timed Completion Unsupported\n"); + ENC_VLOG(enc, "Timed Completion Unsupported\n"); goto release; } @@ -1198,7 +1198,7 @@ ses_set_timed_completion(enc_softc_t *enc, uint8_t tc_en) err = cam_periph_runccb(ccb, enc_error, ENC_CFLAGS, ENC_FLAGS, NULL); if (ccb->ccb_h.status != CAM_REQ_CMP) { - ENC_LOG(enc, "Timed Completion Set Failed\n"); + ENC_VLOG(enc, "Timed Completion Set Failed\n"); goto release; } @@ -1244,14 +1244,14 @@ ses_process_pages(enc_softc_t *enc, struct enc_fsm_state *state, goto out; } if (xfer_len < sizeof(*page)) { - ENC_LOG(enc, "Unable to parse Diag Pages List Header\n"); + ENC_VLOG(enc, "Unable to parse Diag Pages List Header\n"); err = EIO; goto out; } page = (struct scsi_diag_page *)*bufp; length = scsi_2btoul(page->length); if (length + offsetof(struct scsi_diag_page, params) > xfer_len) { - ENC_LOG(enc, "Diag Pages List Too Long\n"); + ENC_VLOG(enc, "Diag Pages List Too Long\n"); goto out; } ENC_DLOG(enc, "%s: page length %d, xfer_len %d\n", @@ -1318,7 +1318,7 @@ ses_process_config(enc_softc_t *enc, struct enc_fsm_state *state, goto out; } if (xfer_len < sizeof(cfg_page->hdr)) { - ENC_LOG(enc, "Unable to parse SES Config Header\n"); + ENC_VLOG(enc, "Unable to parse SES Config Header\n"); err = EIO; goto out; } @@ -1326,7 +1326,7 @@ ses_process_config(enc_softc_t *enc, struct enc_fsm_state *state, cfg_page = (struct ses_cfg_page *)buf; length = ses_page_length(&cfg_page->hdr); if (length > xfer_len) { - ENC_LOG(enc, "Enclosure Config Page Too Long\n"); + ENC_VLOG(enc, "Enclosure Config Page Too Long\n"); goto out; } last_valid_byte = &buf[length - 1]; @@ -1377,7 +1377,7 @@ ses_process_config(enc_softc_t *enc, struct enc_fsm_state *state, while (cur_subenc <= last_subenc) { if (!ses_enc_desc_is_complete(buf_subenc, last_valid_byte)) { - ENC_LOG(enc, "Enclosure %d Beyond End of " + ENC_VLOG(enc, "Enclosure %d Beyond End of " "Descriptors\n", cur_subenc - subencs); err = EIO; goto out; @@ -1416,7 +1416,7 @@ ses_process_config(enc_softc_t *enc, struct enc_fsm_state *state, sestype = ses_types; while (cur_buf_type <= last_buf_type) { if (&cur_buf_type->etype_txt_len > last_valid_byte) { - ENC_LOG(enc, "Runt Enclosure Type Header %d\n", + ENC_VLOG(enc, "Runt Enclosure Type Header %d\n", sestype - ses_types); err = EIO; goto out; @@ -1424,7 +1424,7 @@ ses_process_config(enc_softc_t *enc, struct enc_fsm_state *state, sestype->hdr = cur_buf_type; sestype->text = type_text; type_text += cur_buf_type->etype_txt_len; - ENC_LOG(enc, " Type Desc[%d]: Type 0x%x, MaxElt %d, In Subenc " + ENC_VLOG(enc, " Type Desc[%d]: Type 0x%x, MaxElt %d, In Subenc " "%d, Text Length %d: %.*s\n", sestype - ses_types, sestype->hdr->etype_elm_type, sestype->hdr->etype_maxelt, sestype->hdr->etype_subenc, sestype->hdr->etype_txt_len, @@ -1529,12 +1529,12 @@ ses_process_status(enc_softc_t *enc, struct enc_fsm_state *state, * could happen... Need to use dynamic discovery of the size. */ if (length > xfer_len) { - ENC_LOG(enc, "Enclosure Status Page Too Long\n"); + ENC_VLOG(enc, "Enclosure Status Page Too Long\n"); goto out; } /* Make sure the length contains at least one header and status */ if (length < (sizeof(*page) + sizeof(*page->elements))) { - ENC_LOG(enc, "Enclosure Status Page Too Short\n"); + ENC_VLOG(enc, "Enclosure Status Page Too Short\n"); goto out; } @@ -1576,11 +1576,11 @@ ses_process_status(enc_softc_t *enc, struct enc_fsm_state *state, } if (ses_iter_next(&iter) != NULL) { - ENC_LOG(enc, "Status page, length insufficient for " + ENC_VLOG(enc, "Status page, length insufficient for " "expected number of objects\n"); } else { if (cur_stat <= last_stat) - ENC_LOG(enc, "Status page, exhausted objects before " + ENC_VLOG(enc, "Status page, exhausted objects before " "exhausing page\n"); enc_update_request(enc, SES_PUBLISH_CACHE); err = 0; @@ -1706,11 +1706,11 @@ ses_process_elm_addlstatus(enc_softc_t *enc, struct enc_fsm_state *state, ENC_DLOG(enc, "Additional Element Status Page Length 0x%x\n", length); /* Make sure the length includes at least one header. */ if (length < sizeof(*hdr)+sizeof(struct ses_elm_addlstatus_base_hdr)) { - ENC_LOG(enc, "Runt Additional Element Status Page\n"); + ENC_VLOG(enc, "Runt Additional Element Status Page\n"); goto out; } if (length > xfer_len) { - ENC_LOG(enc, "Additional Element Status Page Too Long\n"); + ENC_VLOG(enc, "Additional Element Status Page Too Long\n"); goto out; } @@ -1763,7 +1763,7 @@ ses_process_elm_addlstatus(enc_softc_t *enc, struct enc_fsm_state *state, if (iter.individual_element_index > expected_index && status_type == TYPE_ADDLSTATUS_MANDATORY) { - ENC_LOG(enc, "%s: provided element " + ENC_VLOG(enc, "%s: provided element " "index %d skips mandatory status " " element at index %d\n", __func__, eip_hdr->element_index, @@ -1784,7 +1784,7 @@ ses_process_elm_addlstatus(enc_softc_t *enc, struct enc_fsm_state *state, /* Make sure the descriptor is within bounds */ if ((offset + elmpriv->addl.hdr->length) > length) { - ENC_LOG(enc, "Element %d Beyond End " + ENC_VLOG(enc, "Element %d Beyond End " "of Additional Element Status Descriptors\n", iter.global_element_index); err = EIO; @@ -1814,7 +1814,7 @@ ses_process_elm_addlstatus(enc_softc_t *enc, struct enc_fsm_state *state, iter.global_element_index); break; default: - ENC_LOG(enc, "Element %d: Unknown Additional Element " + ENC_VLOG(enc, "Element %d: Unknown Additional Element " "Protocol 0x%x\n", iter.global_element_index, ses_elm_addlstatus_proto(elmpriv->addl.hdr)); goto out; @@ -1931,11 +1931,11 @@ ses_process_elm_descs(enc_softc_t *enc, struct enc_fsm_state *state, phdr = &ses_cache->elm_descs_page->hdr; plength = ses_page_length(phdr); if (xfer_len < sizeof(struct ses_page_hdr)) { - ENC_LOG(enc, "Runt Element Descriptor Page\n"); + ENC_VLOG(enc, "Runt Element Descriptor Page\n"); goto out; } if (plength > xfer_len) { - ENC_LOG(enc, "Element Descriptor Page Too Long\n"); + ENC_VLOG(enc, "Element Descriptor Page Too Long\n"); goto out; } @@ -1953,7 +1953,7 @@ ses_process_elm_descs(enc_softc_t *enc, struct enc_fsm_state *state, && (element = ses_iter_next(&iter)) != NULL) { if ((offset + sizeof(struct ses_elm_desc_hdr)) > plength) { - ENC_LOG(enc, "Element %d Descriptor Header Past " + ENC_VLOG(enc, "Element %d Descriptor Header Past " "End of Buffer\n", iter.global_element_index); goto out; } @@ -1963,7 +1963,7 @@ ses_process_elm_descs(enc_softc_t *enc, struct enc_fsm_state *state, iter.global_element_index, iter.type_index, iter.type_element_index, length, offset); if ((offset + sizeof(*hdr) + length) > plength) { - ENC_LOG(enc, "Element%d Descriptor Past " + ENC_VLOG(enc, "Element%d Descriptor Past " "End of Buffer\n", iter.global_element_index); goto out; } @@ -2138,7 +2138,7 @@ static int ses_get_elm_addlstatus_fc(enc_softc_t *enc, enc_cache_t *enc_cache, uint8_t *buf, int bufsiz) { - ENC_LOG(enc, "FC Device Support Stubbed in Additional Status Page\n"); + ENC_VLOG(enc, "FC Device Support Stubbed in Additional Status Page\n"); return (ENODEV); } @@ -2385,7 +2385,7 @@ ses_get_elm_addlstatus_sas_type0(enc_softc_t *enc, enc_cache_t *enc_cache, physz = addl->proto_hdr.sas->base_hdr.num_phys; physz *= sizeof(struct ses_elm_sas_device_phy); if (physz > (bufsiz - offset + 4)) { - ENC_LOG(enc, "Element %d Device Phy List Beyond End Of Buffer\n", + ENC_VLOG(enc, "Element %d Device Phy List Beyond End Of Buffer\n", nobj); err = EIO; goto out; @@ -2440,7 +2440,7 @@ ses_get_elm_addlstatus_sas_type1(enc_softc_t *enc, enc_cache_t *enc_cache, physz = addl->proto_hdr.sas->base_hdr.num_phys * sizeof(struct ses_elm_sas_expander_phy); if (physz > (bufsiz - offset)) { - ENC_LOG(enc, "Element %d: Expander Phy List Beyond " + ENC_VLOG(enc, "Element %d: Expander Phy List Beyond " "End Of Buffer\n", nobj); err = EIO; goto out; @@ -2452,7 +2452,7 @@ ses_get_elm_addlstatus_sas_type1(enc_softc_t *enc, enc_cache_t *enc_cache, physz = addl->proto_hdr.sas->base_hdr.num_phys * sizeof(struct ses_elm_sas_port_phy); if (physz > (bufsiz - offset + 4)) { - ENC_LOG(enc, "Element %d: Port Phy List Beyond End " + ENC_VLOG(enc, "Element %d: Port Phy List Beyond End " "Of Buffer\n", nobj); err = EIO; goto out; @@ -2504,7 +2504,7 @@ ses_get_elm_addlstatus_sas(enc_softc_t *enc, enc_cache_t *enc_cache, case ELMTYP_ARRAY_DEV: break; default: - ENC_LOG(enc, "Element %d has Additional Status type 0, " + ENC_VLOG(enc, "Element %d has Additional Status type 0, " "invalid for SES element type 0x%x\n", nobj, ses_cache->ses_types[tidx].hdr->etype_elm_type); err = ENODEV; @@ -2522,7 +2522,7 @@ ses_get_elm_addlstatus_sas(enc_softc_t *enc, enc_cache_t *enc_cache, case ELMTYP_ESCC: break; default: - ENC_LOG(enc, "Element %d has Additional Status type 1, " + ENC_VLOG(enc, "Element %d has Additional Status type 1, " "invalid for SES element type 0x%x\n", nobj, ses_cache->ses_types[tidx].hdr->etype_elm_type); err = ENODEV; @@ -2532,7 +2532,7 @@ ses_get_elm_addlstatus_sas(enc_softc_t *enc, enc_cache_t *enc_cache, bufsiz, eip, nobj); break; default: - ENC_LOG(enc, "Element %d of type 0x%x has Additional Status " + ENC_VLOG(enc, "Element %d of type 0x%x has Additional Status " "of unknown type 0x%x\n", nobj, ses_cache->ses_types[tidx].hdr->etype_elm_type, dtype); err = ENODEV; |