scsi: lpfc: Correct topology type reporting on G7 adapters
authorJames Smart <jsmart2021@gmail.com>
Fri, 30 Nov 2018 00:09:38 +0000 (16:09 -0800)
committerMartin K. Petersen <martin.petersen@oracle.com>
Sat, 8 Dec 2018 03:35:33 +0000 (22:35 -0500)
Driver missed classifying the chip type for G7 when reporting supported
topologies. This resulted in loop being shown as supported on FC links that
are not supported per the standard.

Add the chip classifications to the topology checks in the driver.

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_mbox.c

index feaaa015150e0bf74e8a94f93c3a70df58232586..83924d66fd39d2a533e1ecf2e28fb8138ceb7aee 100644 (file)
@@ -3937,8 +3937,9 @@ lpfc_topology_store(struct device *dev, struct device_attribute *attr,
                                val);
                        return -EINVAL;
                }
-               if (phba->pcidev->device == PCI_DEVICE_ID_LANCER_G6_FC &&
-                       val == 4) {
+               if ((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");
                        return -EINVAL;
index b6aedc55be7758558dd5df7f2b985445b26c1922..f6a5083a621ece01af79bcf9080e090b263f6423 100644 (file)
@@ -513,9 +513,9 @@ lpfc_init_link(struct lpfc_hba * phba,
                break;
        }
 
-       if (phba->pcidev->device == PCI_DEVICE_ID_LANCER_G6_FC &&
-               mb->un.varInitLnk.link_flags & FLAGS_TOPOLOGY_MODE_LOOP) {
-               /* Failover is not tried for Lancer G6 */
+       if ((phba->pcidev->device == PCI_DEVICE_ID_LANCER_G6_FC ||
+            phba->pcidev->device == PCI_DEVICE_ID_LANCER_G7_FC) &&
+           mb->un.varInitLnk.link_flags & FLAGS_TOPOLOGY_MODE_LOOP) {
                mb->un.varInitLnk.link_flags = FLAGS_TOPOLOGY_MODE_PT_PT;
                phba->cfg_topology = FLAGS_TOPOLOGY_MODE_PT_PT;
        }