lpfc 8.3.4: Various SLI4 fixes
Subsystems (2)
PATCH 1/8 lpfc 8.3.4: Various SLI4 fixes
Various SLI4 fixes
- Fix switch name not used in the FCF record for FCoE HBAs
- Enabled HBA UE error polling error-condition action code
- Rewrite lpfc_sli4_scmd_to_wqidx_distr() to handle counter rollover cleanly
- Modify resume_rpi mailbox data structure to match current SLI4 spec
- Do not issue mailbox command in MBX_POLL mode when LPFC_HBA_ERROR is set
- Wait for HBA POST completion before checking Online and UE registers
- Fix accumulated total length not being filled in on unsolicited IOCBs
- Use PCI config space register to determine SLI rev of HBA
- Turn on starting ELS tmo function timer during device initialization
---
drivers/scsi/lpfc/lpfc.h | 2 + drivers/scsi/lpfc/lpfc_hbadisc.c | 66 +++++++++++++++++++++++++--- drivers/scsi/lpfc/lpfc_hw4.h | 74 ++++++++++++++++++++++++++----- drivers/scsi/lpfc/lpfc_init.c | 48 ++++++++++---------- drivers/scsi/lpfc/lpfc_mbox.c | 8 +-- drivers/scsi/lpfc/lpfc_sli.c | 90 +++++++++++++++++--------------------- drivers/scsi/lpfc/lpfc_sli4.h | 1 7 files changed, 190 insertions(+), 99 deletions(-)
drivers/scsi/lpfc/lpfc.h +2 -0
@@ -616,6 +616,8 @@ struct lpfc_hba {uint32_t hbq_count;/* Count of configured HBQs */ struct hbq_s hbqs[LPFC_MAX_HBQS ];/* local copy of hbq indicies */ +uint32_t fcp_qidx;/* next work queue to post work to */ +unsigned long pci_bar0_map;/* Physical address for PCI BAR0 */ unsigned long pci_bar1_map;/* Physical address for PCI BAR1 */ unsigned long pci_bar2_map;/* Physical address for PCI BAR2 */
drivers/scsi/lpfc/lpfc_hbadisc.c +60 -6
97 lines not on this page · raw message
drivers/scsi/lpfc/lpfc_hw4.h +61 -13
93 lines not on this page · raw message
drivers/scsi/lpfc/lpfc_init.c +23 -25
71 lines not on this page · raw message
drivers/scsi/lpfc/lpfc_mbox.c +3 -5
@@ -1938,9 +1938,7 @@ lpfc_resume_rpi(struct lpfcMboxq *mbox, struct lpfc_nodelist *ndlp)memset (mbox,0 ,sizeof (*mbox)); resume_rpi = &mbox->u.mqe.un.resume_rpi;bf_set (lpfc_mqe_command, &mbox->u.mqe,MBX_RESUME_RPI ); -bf_set (lpfc_resume_rpi_rpi, resume_rpi, ndlp->nlp_rpi); -bf_set (lpfc_resume_rpi_vpi, resume_rpi, - ndlp->vport->vpi + ndlp->vport->phba->vpi_base); -bf_set (lpfc_resume_rpi_vfi, resume_rpi, - ndlp->vport->vfi + ndlp->vport->phba->vfi_base); +bf_set (lpfc_resume_rpi_index, resume_rpi, ndlp->nlp_rpi); +bf_set (lpfc_resume_rpi_ii, resume_rpi,RESUME_INDEX_RPI ); + resume_rpi->event_tag = ndlp->phba->fc_eventTag; }
drivers/scsi/lpfc/lpfc_sli.c +40 -50
219 lines not on this page · raw message
drivers/scsi/lpfc/lpfc_sli4.h +1 -0
@@ -132,6 +132,7 @@ struct lpfc_sli4_link {struct lpfc_fcf {uint8_t fabric_name[8 ]; +uint8_t switch_name[8 ];uint8_t mac_addr[6 ];uint16_t fcf_indx;uint16_t fcfi;