scsi: lpfc: Fix disablement of FC-AL on lpe35000 models
authorJames Smart <jsmart2021@gmail.com>
Wed, 18 Dec 2019 23:58:04 +0000 (15:58 -0800)
committerMartin K. Petersen <martin.petersen@oracle.com>
Sat, 21 Dec 2019 18:42:42 +0000 (13:42 -0500)
The order of the flags/checks for adapters where FC-AL is supported
erroneously excluded lpe35000 adapter models.  Also noted that the G7 flags
for Loop and Persistent topology are incorrect. They should follow the
rules as G6.

Rework the logic to enable LPe35000 FC-AL support.  Collapse G7 support
logic to the same rules as G6.

Link: https://lore.kernel.org/r/20191218235808.31922-7-jsmart2021@gmail.com
Signed-off-by: Dick Kennedy <dick.kennedy@broadcom.com>
Signed-off-by: James Smart <jsmart2021@gmail.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/lpfc/lpfc_attr.c
drivers/scsi/lpfc/lpfc_init.c

index 4ff82b36a37a25731f3ed3229943cb3061ebe07c..46f56f30f77ef3d14b2cfb466cf1a5bc5fda73a0 100644 (file)
@@ -4123,14 +4123,13 @@ lpfc_topology_store(struct device *dev, struct device_attribute *attr,
                /*
                 * The 'topology' is not a configurable parameter if :
                 *   - persistent topology enabled
-                *   - G7 adapters
-                *   - G6 with no private loop support
+                *   - G7/G6 with no private loop support
                 */
 
-               if (((phba->hba_flag & HBA_PERSISTENT_TOPO) ||
+               if ((phba->hba_flag & HBA_PERSISTENT_TOPO ||
                     (!phba->sli4_hba.pc_sli4_params.pls &&
-                    phba->pcidev->device == PCI_DEVICE_ID_LANCER_G6_FC) ||
-                    phba->pcidev->device == PCI_DEVICE_ID_LANCER_G7_FC) &&
+                    (phba->pcidev->device == PCI_DEVICE_ID_LANCER_G6_FC ||
+                    phba->pcidev->device == PCI_DEVICE_ID_LANCER_G7_FC))) &&
                    val == 4) {
                        lpfc_printf_vlog(vport, KERN_ERR, LOG_INIT,
                                "3114 Loop mode not supported\n");
index 633ca46b0e4b04a796ea071eefee46ff6ec57178..3defada2602f59d14ee1465eb10082030aa1e392 100644 (file)
@@ -8320,14 +8320,6 @@ lpfc_map_topology(struct lpfc_hba *phba, struct lpfc_mbx_read_config *rd_config)
        phba->hba_flag |= HBA_PERSISTENT_TOPO;
        switch (phba->pcidev->device) {
        case PCI_DEVICE_ID_LANCER_G7_FC:
-               if (tf || (pt == LINK_FLAGS_LOOP)) {
-                       /* Invalid values from FW - use driver params */
-                       phba->hba_flag &= ~HBA_PERSISTENT_TOPO;
-               } else {
-                       /* Prism only supports PT2PT topology */
-                       phba->cfg_topology = FLAGS_TOPOLOGY_MODE_PT_PT;
-               }
-               break;
        case PCI_DEVICE_ID_LANCER_G6_FC:
                if (!tf) {
                        phba->cfg_topology = ((pt == LINK_FLAGS_LOOP)