lpfc: Remove global lpfc_sli_mode attribute in leiu of per-hba lpfc_sli_mode
authorJames Smart <james.smart@broadcom.com>
Wed, 6 Jul 2016 19:36:09 +0000 (12:36 -0700)
committerMartin K. Petersen <martin.petersen@oracle.com>
Fri, 15 Jul 2016 19:25:06 +0000 (15:25 -0400)
Remove global lpfc_sli_mode attribute in leiu of per-hba lpfc_sli_mode

Signed-off-by: Dick Kennedy <dick.kennedy@broadcom.com>
Signed-off-by: James Smart <james.smart@broadcom.com>
Reviewed-by: Hannes Reinecke <hare@suse.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/lpfc/lpfc.h
drivers/scsi/lpfc/lpfc_attr.c
drivers/scsi/lpfc/lpfc_crtn.h
drivers/scsi/lpfc/lpfc_sli.c

index 82d7b115b6501455209e77130cfb319ce0d25e28..4d9f1b189659de47b95f06d6146745717d7df759 100644 (file)
@@ -755,6 +755,7 @@ struct lpfc_hba {
        uint32_t cfg_suppress_link_up;
        uint32_t cfg_rrq_xri_bitmap_sz;
        uint32_t cfg_delay_discovery;
+       uint32_t cfg_sli_mode;
 #define LPFC_INITIALIZE_LINK              0    /* do normal init_link mbox */
 #define LPFC_DELAY_INIT_LINK              1    /* layered driver hold off */
 #define LPFC_DELAY_INIT_LINK_INDEFINITELY 2    /* wait, manual intervention */
index f5abcea49730226d4e95b7aff17f20fc05e088f1..07d80336dfc08b2f8aac3a3c7c8bf3300f425504 100644 (file)
@@ -2837,12 +2837,11 @@ MODULE_PARM_DESC(lpfc_poll, "FCP ring polling mode control:"
 static DEVICE_ATTR(lpfc_poll, S_IRUGO | S_IWUSR,
                   lpfc_poll_show, lpfc_poll_store);
 
-int  lpfc_sli_mode = 0;
-module_param(lpfc_sli_mode, int, S_IRUGO);
-MODULE_PARM_DESC(lpfc_sli_mode, "SLI mode selector:"
-                " 0 - auto (SLI-3 if supported),"
-                " 2 - select SLI-2 even on SLI-3 capable HBAs,"
-                " 3 - select SLI-3");
+LPFC_ATTR(sli_mode, 0, 0, 3,
+       "SLI mode selector:"
+       " 0 - auto (SLI-3 if supported),"
+       " 2 - select SLI-2 even on SLI-3 capable HBAs,"
+       " 3 - select SLI-3");
 
 LPFC_ATTR_R(enable_npiv, 1, 0, 1,
        "Enable NPIV functionality");
@@ -5936,6 +5935,7 @@ lpfc_get_cfgparam(struct lpfc_hba *phba)
        lpfc_suppress_link_up_init(phba, lpfc_suppress_link_up);
        lpfc_iocb_cnt_init(phba, lpfc_iocb_cnt);
        lpfc_delay_discovery_init(phba, lpfc_delay_discovery);
+       lpfc_sli_mode_init(phba, lpfc_sli_mode);
        phba->cfg_enable_dss = 1;
        lpfc_enable_mds_diags_init(phba, lpfc_enable_mds_diags);
        return;
index 9f075db51099eacd8ded42af437cb1b5dbdaee28..3a5a02e36950780a087284f80b2a0354baf5b324 100644 (file)
@@ -359,7 +359,6 @@ extern struct scsi_host_template lpfc_template_s3;
 extern struct scsi_host_template lpfc_vport_template;
 extern struct fc_function_template lpfc_transport_functions;
 extern struct fc_function_template lpfc_vport_transport_functions;
-extern int lpfc_sli_mode;
 
 int  lpfc_vport_symbolic_node_name(struct lpfc_vport *, char *, size_t);
 int  lpfc_vport_symbolic_port_name(struct lpfc_vport *, char *,        size_t);
index 53ed6c534f82cd969cb28be03b4294db98f8c1ea..c8fd0a349eba6985c8fc54ece3f815d0e6d039c3 100644 (file)
@@ -4665,13 +4665,13 @@ lpfc_sli_hba_setup(struct lpfc_hba *phba)
        int  mode = 3, i;
        int longs;
 
-       switch (lpfc_sli_mode) {
+       switch (phba->cfg_sli_mode) {
        case 2:
                if (phba->cfg_enable_npiv) {
                        lpfc_printf_log(phba, KERN_ERR, LOG_INIT | LOG_VPORT,
-                               "1824 NPIV enabled: Override lpfc_sli_mode "
+                               "1824 NPIV enabled: Override sli_mode "
                                "parameter (%d) to auto (0).\n",
-                               lpfc_sli_mode);
+                               phba->cfg_sli_mode);
                        break;
                }
                mode = 2;
@@ -4681,8 +4681,8 @@ lpfc_sli_hba_setup(struct lpfc_hba *phba)
                break;
        default:
                lpfc_printf_log(phba, KERN_ERR, LOG_INIT | LOG_VPORT,
-                               "1819 Unrecognized lpfc_sli_mode "
-                               "parameter: %d.\n", lpfc_sli_mode);
+                               "1819 Unrecognized sli_mode parameter: %d.\n",
+                               phba->cfg_sli_mode);
 
                break;
        }
@@ -4690,7 +4690,7 @@ lpfc_sli_hba_setup(struct lpfc_hba *phba)
 
        rc = lpfc_sli_config_port(phba, mode);
 
-       if (rc && lpfc_sli_mode == 3)
+       if (rc && phba->cfg_sli_mode == 3)
                lpfc_printf_log(phba, KERN_ERR, LOG_INIT | LOG_VPORT,
                                "1820 Unable to select SLI-3.  "
                                "Not supported by adapter.\n");