T10DIF support on SLI-4-based FCoE adapters is not supported.
A prior commit in the 12.4.0.0 stream added device recognition
that would prevent T10diff enablement. However, it didn't contain
a complete device list. Thus some SLI-4 FCoE adapters still had
T10DIF enabled.

Fix by expanding the device list that identifies FCoE devices.

Signed-off-by: Dick Kennedy <dick.kenn...@broadcom.com>
Signed-off-by: James Smart <jsmart2...@gmail.com>
---
 drivers/scsi/lpfc/lpfc_attr.c | 17 ++++++++++++++---
 1 file changed, 14 insertions(+), 3 deletions(-)

diff --git a/drivers/scsi/lpfc/lpfc_attr.c b/drivers/scsi/lpfc/lpfc_attr.c
index 79a192479755..e4c89e56c632 100644
--- a/drivers/scsi/lpfc/lpfc_attr.c
+++ b/drivers/scsi/lpfc/lpfc_attr.c
@@ -7083,11 +7083,22 @@ struct fc_function_template 
lpfc_vport_transport_functions = {
 static void
 lpfc_get_hba_function_mode(struct lpfc_hba *phba)
 {
-       /* If it's a SkyHawk FCoE adapter */
-       if (phba->pcidev->device == PCI_DEVICE_ID_SKYHAWK)
+       /* If the adapter supports FCoE mode */
+       switch (phba->pcidev->device) {
+       case PCI_DEVICE_ID_SKYHAWK:
+       case PCI_DEVICE_ID_SKYHAWK_VF:
+       case PCI_DEVICE_ID_LANCER_FCOE:
+       case PCI_DEVICE_ID_LANCER_FCOE_VF:
+       case PCI_DEVICE_ID_ZEPHYR_DCSP:
+       case PCI_DEVICE_ID_HORNET:
+       case PCI_DEVICE_ID_TIGERSHARK:
+       case PCI_DEVICE_ID_TOMCAT:
                phba->hba_flag |= HBA_FCOE_MODE;
-       else
+               break;
+       default:
+       /* for others, clear the flag */
                phba->hba_flag &= ~HBA_FCOE_MODE;
+       }
 }
 
 /**
-- 
2.13.7

Reply via email to