FreeBSD Bugzilla – Attachment 223202 Details for
Bug 248630
sesutil does not report all drives in an MSA60, locate LED is off by +1
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Naïve patch
hw_ses_x_eiioe.diff (text/plain), 5.21 KB, created by
Daniel Vassdal
on 2021-03-12 08:55:37 UTC
(
hide
)
Description:
Naïve patch
Filename:
MIME Type:
Creator:
Daniel Vassdal
Created:
2021-03-12 08:55:37 UTC
Size:
5.21 KB
patch
obsolete
>ÿþdiff --git sys/cam/scsi/scsi_enc_ses.c sys/cam/scsi/scsi_enc_ses.c >index 014fe9fcd525..d9cae7cb3252 100644 >--- sys/cam/scsi/scsi_enc_ses.c >+++ sys/cam/scsi/scsi_enc_ses.c >@@ -366,9 +366,10 @@ typedef struct ses_cache { > > typedef struct ses_softc { > uint32_t ses_flags; >-#define SES_FLAG_TIMEDCOMP 0x01 >-#define SES_FLAG_ADDLSTATUS 0x02 >-#define SES_FLAG_DESC 0x04 >+#define SES_FLAG_TIMEDCOMP 0x01 >+#define SES_FLAG_ADDLSTATUS 0x02 >+#define SES_FLAG_DESC 0x04 >+#define SES_FLAG_EIIOE_FORCE 0x08 > > ses_control_reqlist_t ses_requests; > ses_control_reqlist_t ses_pending_requests; >@@ -1716,6 +1717,7 @@ ses_process_elm_addlstatus(enc_softc_t *enc, struct enc_fsm_state *state, > int offset; > enc_cache_t *enc_cache; > ses_cache_t *ses_cache; >+ ses_softc_t *ses_softc; > uint8_t *buf; > ses_element_t *elmpriv; > const struct ses_page_hdr *hdr; >@@ -1723,6 +1725,7 @@ ses_process_elm_addlstatus(enc_softc_t *enc, struct enc_fsm_state *state, > > enc_cache = &enc->enc_daemon_cache; > ses_cache = enc_cache->private; >+ ses_softc = enc->enc_private; > buf = *bufp; > err = -1; > >@@ -1788,6 +1791,15 @@ ses_process_elm_addlstatus(enc_softc_t *enc, struct enc_fsm_state *state, > ses_elem_index_type_t index_type; > > eip_hdr = (struct ses_elm_addlstatus_eip_hdr *)elm_hdr; >+ >+ /* >+ * Some older enclosures, particulary HP, >+ * incorrectly leave the EIIOE field blank. >+ * SES_FLAG_EIIOE_FORCE is a workaround. >+ */ >+ if (ses_softc->ses_flags & SES_FLAG_EIIOE_FORCE) >+ eip_hdr->byte2 |= SES_ADDL_EIP_EIIOE_GLOB; >+ > if (SES_ADDL_EIP_EIIOE_EI_GLOB(eip_hdr->byte2)) { > index_type = SES_ELEM_INDEX_GLOBAL; > expected_index = iter.global_element_index; >@@ -3009,6 +3021,8 @@ int > ses_softc_init(enc_softc_t *enc) > { > ses_softc_t *ses_softc; >+ char tunable_name[17]; >+ char tunable_value[6]; > > CAM_DEBUG(enc->periph->path, CAM_DEBUG_SUBTRACE, > ("entering enc_softc_init(%p)\n", enc)); >@@ -3037,6 +3051,18 @@ ses_softc_init(enc_softc_t *enc) > TAILQ_INIT(&ses_softc->ses_requests); > TAILQ_INIT(&ses_softc->ses_pending_requests); > >+ // Allow the user to override eiioe behaviour >+ snprintf(tunable_name, sizeof(tunable_name), >+ "hw.ses.%d.eiioe", enc->periph->unit_number); >+ >+ TUNABLE_STR_FETCH(tunable_name, tunable_value, sizeof(tunable_value)); >+ if (!strncmp(tunable_value, "force", sizeof(tunable_value))) >+ { >+ ses_softc->ses_flags |= SES_FLAG_EIIOE_FORCE; >+ ENC_LOG(enc, "EIIOE is forced to 1\n", >+ enc->periph->unit_number); >+ } >+ > enc_update_request(enc, SES_UPDATE_PAGES); > > // XXX: Move this to the FSM so it doesn't hang init >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 248630
:
222110
| 223202