scsi: lpfc: Fix MI capability display in cmf_info sysfs attribute
authorJustin Tee <justin.tee@broadcom.com>
Wed, 16 Nov 2022 01:19:18 +0000 (17:19 -0800)
committerMartin K. Petersen <martin.petersen@oracle.com>
Thu, 17 Nov 2022 18:18:42 +0000 (18:18 +0000)
The dynamic mi_ver value holds the currently configured MI setting.  mi_ver
was being displayed as part of the cmf_info sysfs attribute, when the
output string meant to display MI capabilities instead.

Add a mi_cap member in the lpfc_pc_sli4_params structure that will store MI
capabilities during initialization so that cmf_info prints out capabilities
instead of current configuration.

Signed-off-by: Justin Tee <justin.tee@broadcom.com>
Link: https://lore.kernel.org/r/20221116011921.105995-4-justintee8345@gmail.com
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/lpfc/lpfc_attr.c
drivers/scsi/lpfc/lpfc_init.c
drivers/scsi/lpfc/lpfc_sli4.h

index 030ad1d59cbd662513422f7fd3981a9774001ea8..77e1b2911cb41aa14aab08c66d25b8bc7feaa57c 100644 (file)
@@ -134,7 +134,7 @@ lpfc_cmf_info_show(struct device *dev, struct device_attribute *attr,
        scnprintf(tmp, sizeof(tmp),
                  "Congestion Mgmt Info: E2Eattr %d Ver %d "
                  "CMF %d cnt %d\n",
-                 phba->sli4_hba.pc_sli4_params.mi_ver,
+                 phba->sli4_hba.pc_sli4_params.mi_cap,
                  cp ? cp->cgn_info_version : 0,
                  phba->sli4_hba.pc_sli4_params.cmf, phba->cmf_timer_cnt);
 
index a6e32ecd4151cad0f190deeeceea1291ca75bbed..a119c06742b82f5017328c2cd1e816c2117877fd 100644 (file)
@@ -699,6 +699,8 @@ lpfc_sli4_refresh_params(struct lpfc_hba *phba)
                return rc;
        }
        mbx_sli4_parameters = &mqe->un.get_sli4_parameters.sli4_parameters;
+       phba->sli4_hba.pc_sli4_params.mi_cap =
+               bf_get(cfg_mi_ver, mbx_sli4_parameters);
 
        /* Are we forcing MI off via module parameter? */
        if (phba->cfg_enable_mi)
@@ -13839,6 +13841,7 @@ lpfc_get_sli4_parameters(struct lpfc_hba *phba, LPFC_MBOXQ_t *mboxq)
                                           mbx_sli4_parameters);
        phba->sli4_hba.extents_in_use = bf_get(cfg_ext, mbx_sli4_parameters);
        phba->sli4_hba.rpi_hdrs_in_use = bf_get(cfg_hdrr, mbx_sli4_parameters);
+       sli4_params->mi_cap = bf_get(cfg_mi_ver, mbx_sli4_parameters);
 
        /* Check for Extended Pre-Registered SGL support */
        phba->cfg_xpsgl = bf_get(cfg_xpsgl, mbx_sli4_parameters);
index cbb1aa1cf025bacf16c019a6342da43681a7560d..f927c2a25d5461e6f05285cae802edcc5110d4ae 100644 (file)
@@ -556,6 +556,7 @@ struct lpfc_pc_sli4_params {
 #define LPFC_MIB3_SUPPORT      3
        uint16_t mi_value;
 #define LPFC_DFLT_MIB_VAL      2
+       uint8_t mi_cap;
        uint8_t mib_bde_cnt;
        uint8_t cmf;
        uint8_t cqv;