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.
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 pci/quirks. c pci/quirks. c PCI_FIXUP_ EARLY(PCI_ VENDOR_ ID_NVIDIA, DEVICE_ ID_NVIDIA_ NVENET_ 15, msi_disable) ;
index 81d19d5..603cd97 100644
--- a/drivers/
+++ b/drivers/
@@ -2215,6 +2215,16 @@ DECLARE_
PCI_
nvenet_
+/* The Radeon Xpress 200M/RS480 has problems with delivering MSI interrupts msi_disable( struct pci_dev *dev) PCI_FIXUP_ EARLY(PCI_ VENDOR_ ID_ATI, 0x5a3f, radeon_ msi_disable) ; msi_mapping( struct pci_dev *dev)
+ * correctly, causing crashing; disable MSI for this device.
+ */
+static void __devinit radeon_
+{
+ dev_info(&dev->dev, "Disabling MSI for ATI Radeon\n");
+ dev->no_msi = 1;
+}
+DECLARE_
+
static int __devinit ht_check_
{
int pos, ttl = 48;