lpfc 8.3.28: SLI fixes and added SLI4 support
Subsystems (2)
PATCH 2/7 lpfc 8.3.28: SLI fixes and added SLI4 support
Adapter (SLI) interface fixes:
- Modify WQ handling to use entry_repost (CR 123981)
- Fix for ABTS. Do not free original IOCB whenever ABTS fails. (CR 115829)
- Check board for FCoE before reading FCoE paramaters (CR124731)
- Add support for SLI4 FC Loop mode (CR 124721)
- Add support for resource count changes during fw reset. (CR 125888, 125675)
- Increase CQE count from 256 to 1024. (CR 126149)
Signed-off-by Alex Iannicelli <[email protected]>
Signed-off-by James Smart <[email protected]>
---
lpfc_attr.c | 23 +++++++ lpfc_crtn.h | 2 lpfc_els.c | 18 ++--- lpfc_hbadisc.c | 1 lpfc_init.c | 52 +++++++++++++--- lpfc_sli.c | 184 ++++++++++++++++++++++++--------------------------------- lpfc_sli4.h | 2 7 files changed, 156 insertions(+), 126 deletions(-)
drivers/scsi/lpfc/lpfc_attr.c +23 -0
@@ -2777,6 +2777,14 @@ lpfc_topology_store(struct device *dev,if (val >=0 && val <=6 ) { prev_val = phba->cfg_topology; phba->cfg_topology = val; +if (phba->cfg_link_speed ==LPFC_USER_LINK_SPEED_16G && + val ==4 ) { +lpfc_printf_vlog (vport,KERN_ERR ,LOG_INIT , +"3113 Loop mode not supported at speed %d\n" , + phba->cfg_link_speed); + phba->cfg_topology = prev_val; +return -EINVAL ; + }if (nolip)return strlen (buf);
@@ -3222,6 +3230,14 @@ lpfc_link_speed_store(struct device *dev val);return -EINVAL ; } +if (val ==LPFC_USER_LINK_SPEED_16G && + phba->fc_topology ==LPFC_TOPOLOGY_LOOP ) { +lpfc_printf_log (phba,KERN_ERR ,LOG_INIT , +"3112 lpfc_link_speed attribute cannot be set " +"to %d. Speed is not supported in loop mode.\n" , + val); +return -EINVAL ; + }if ((val >=0 ) && (val <=LPFC_USER_LINK_SPEED_MAX ) && (LPFC_USER_LINK_SPEED_BITMAP & (1 << val))) { prev_val = phba->cfg_link_speed;
@@ -3266,6 +3282,13 @@ lpfc_param_show(link_speed)static int lpfc_link_speed_init (struct lpfc_hba *phba,int val) { +if (val ==LPFC_USER_LINK_SPEED_16G && phba->cfg_topology ==4 ) { +lpfc_printf_log (phba,KERN_ERR ,LOG_INIT , +"3111 lpfc_link_speed of %d cannot " +"support loop mode, setting topology to default.\n" , + val); + phba->cfg_topology =0 ; + }if ((val >=0 ) && (val <=LPFC_USER_LINK_SPEED_MAX ) && (LPFC_USER_LINK_SPEED_BITMAP & (1 << val))) { phba->cfg_link_speed = val;
drivers/scsi/lpfc/lpfc_crtn.h +2 -0
@@ -453,3 +453,5 @@ int lpfc_sli_probe_sriov_nr_virtfn(strucuint16_t lpfc_sli_sriov_nr_virtfn_get (struct lpfc_hba *);int lpfc_sli4_queue_create (struct lpfc_hba *);void lpfc_sli4_queue_destroy (struct lpfc_hba *); +int lpfc_sli4_read_config (struct lpfc_hba *phba); +int lpfc_scsi_buf_update (struct lpfc_hba *phba);
drivers/scsi/lpfc/lpfc_els.c +9 -9
@@ -909,15 +909,15 @@ lpfc_cmpl_els_flogi(struct lpfc_hba *phb*/ if (phba->alpa_map[0 ] ==0 ) { vport->cfg_discovery_threads =LPFC_MAX_DISC_THREADS ; -if ((phba->sli_rev ==LPFC_SLI_REV4 ) && - (!(vport->fc_flag &FC_VFI_REGISTERED ) || - (vport->fc_prevDID != vport->fc_myDID))) { -if (vport->fc_flag &FC_VFI_REGISTERED ) -lpfc_sli4_unreg_all_rpis (vport); -lpfc_issue_reg_vfi (vport); -lpfc_nlp_put (ndlp); - goto out; - } + } +if ((phba->sli_rev ==LPFC_SLI_REV4 ) && + (!(vport->fc_flag &FC_VFI_REGISTERED ) || + (vport->fc_prevDID != vport->fc_myDID))) { +if (vport->fc_flag &FC_VFI_REGISTERED ) +lpfc_sli4_unreg_all_rpis (vport); +lpfc_issue_reg_vfi (vport); +lpfc_nlp_put (ndlp); + goto out; } goto flogifail; }
drivers/scsi/lpfc/lpfc_hbadisc.c +0 -1
@@ -2858,7 +2858,6 @@ lpfc_mbx_cmpl_reg_vfi(struct lpfc_hba *pif (vport->port_state ==LPFC_FABRIC_CFG_LINK ) {/* For private loop just start discovery and we are done. */ if ((phba->fc_topology ==LPFC_TOPOLOGY_LOOP ) && - (phba->alpa_map[0 ] ==0 ) && !(vport->fc_flag &FC_PUBLIC_LOOP )) {/* Use loop map to make discovery list */ lpfc_disc_list_loopmap (vport);
drivers/scsi/lpfc/lpfc_init.c +42 -10
83 lines not on this page · raw message
drivers/scsi/lpfc/lpfc_sli4.h +1 -1
@@ -291,7 +291,7 @@ struct lpfc_bmbx {#define LPFC_RQE_SIZE 8#define LPFC_EQE_DEF_COUNT 1024 -#define LPFC_CQE_DEF_COUNT 256 +#define LPFC_CQE_DEF_COUNT 1024#define LPFC_WQE_DEF_COUNT 256#define LPFC_MQE_DEF_COUNT 16#define LPFC_RQE_DEF_COUNT 512
drivers/scsi/lpfc/lpfc_sli.c +79 -105
318 lines not on this page · raw message