From: Peter Georg <peter.georg(a)physik.uni-regensburg.de>
mptspi: Add new messaging
Upstream Status: RHEL only
Note: The following PCI IDs are still silently dropped:
PCI_VENDOR_ID_LSI_LOGIC, MPI_MANUFACTPAGE_DEVID_53C1030, !PCI_VENDOR_ID_VMWARE
I have not found a satisfactory solution for these.
Signed-off-by: Peter Georg <peter.georg(a)physik.uni-regensburg.de>
diff --git a/drivers/message/fusion/mptspi.c b/drivers/message/fusion/mptspi.c
index blahblah..blahblah 100644
--- a/drivers/message/fusion/mptspi.c
+++ b/drivers/message/fusion/mptspi.c
@@ -1244,15 +1244,24 @@ static struct pci_device_id mptspi_pci_table[] = {
#else
{ PCI_VENDOR_ID_LSI_LOGIC, MPI_MANUFACTPAGE_DEVID_53C1030,
PCI_ANY_ID, PCI_ANY_ID },
+#endif
{ PCI_VENDOR_ID_ATTO, MPI_MANUFACTPAGE_DEVID_53C1030,
PCI_ANY_ID, PCI_ANY_ID },
{ PCI_VENDOR_ID_LSI_LOGIC, MPI_MANUFACTPAGE_DEVID_53C1035,
PCI_ANY_ID, PCI_ANY_ID },
-#endif
{0} /* Terminating entry */
};
MODULE_DEVICE_TABLE(pci, mptspi_pci_table);
+#ifdef CONFIG_RHEL_DIFFERENCES
+static const struct pci_device_id rh_disabled_pci_table[] = {
+ { PCI_VENDOR_ID_ATTO, MPI_MANUFACTPAGE_DEVID_53C1030,
+ PCI_ANY_ID, PCI_ANY_ID },
+ { PCI_VENDOR_ID_LSI_LOGIC, MPI_MANUFACTPAGE_DEVID_53C1035,
+ PCI_ANY_ID, PCI_ANY_ID },
+ {0} /* Terminating entry */
+};
+#endif
/*
* renegotiate for a given target
@@ -1367,6 +1376,11 @@ mptspi_probe(struct pci_dev *pdev, const struct pci_device_id *id)
int error=0;
int r;
+#ifdef CONFIG_RHEL_DIFFERENCES
+ if (pci_hw_disabled(rh_disabled_pci_table, pdev))
+ return -ENODEV;
+#endif
+
if ((r = mpt_attach(pdev,id)) != 0)
return r;
@@ -1540,11 +1554,6 @@ mptspi_probe(struct pci_dev *pdev, const struct pci_device_id *id)
scsi_scan_host(sh);
-#ifdef CONFIG_RHEL_DIFFERENCES
- add_taint(TAINT_SUPPORT_REMOVED, LOCKDEP_STILL_OK);
- pr_warn("MPTSPI MODULE IS NOT SUPPORTED\n");
-#endif
-
return 0;
out_mptspi_probe:
--
https://gitlab.com/cki-project/kernel-ark/-/merge_requests/1610