Comment 192 for bug 509273

Revision history for this message
Daniel J Blueman (danielblueman) wrote :

Checking the upstream bug [https://bugzilla.kernel.org/show_bug.cgi?id=15626], Alex's patch (which has been accepted) disables MSI for the whole system probably for good reason, not just for that device or the child buses - thus what I was going to suggest [1] probably won't work.

--- [1]

diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c
index 81d19d5..603cd97 100644
--- a/drivers/pci/quirks.c
+++ b/drivers/pci/quirks.c
@@ -2215,6 +2215,16 @@ DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_NVIDIA,
    PCI_DEVICE_ID_NVIDIA_NVENET_15,
    nvenet_msi_disable);

+/* The Radeon Xpress 200M/RS480 has problems with delivering MSI interrupts
+ * correctly, causing crashing; disable MSI for this device.
+ */
+static void __devinit radeon_msi_disable(struct pci_dev *dev)
+{
+ dev_info(&dev->dev, "Disabling MSI for ATI Radeon\n");
+ dev->no_msi = 1;
+}
+DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_ATI, 0x5a3f, radeon_msi_disable);
+
 static int __devinit ht_check_msi_mapping(struct pci_dev *dev)
 {
  int pos, ttl = 48;