Commit 184b812f7da6726d7ea4ca409c7a8762ff6c6df6

Authored by Jay Cliburn
Committed by Greg Kroah-Hartman
1 parent 73a74ed3a6

PCI: quirk disable MSI on via vt3351

The Via VT3351 APIC does not play well with MSI and unleashes a flood
of APIC errors when MSI is used to deliver interrupts.  The problem
was recently exposed when the atl1 network device driver, which enables
MSI by default, stimulated APIC errors on an Asus M2V mainboard, which
employs the Via VT3351.
See http://bugzilla.kernel.org/show_bug.cgi?id=8472 for additional
details on this bug.

Signed-off-by: Jay Cliburn <jacliburn@bellsouth.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

Showing 2 changed files with 2 additions and 0 deletions Side-by-side Diff

drivers/pci/quirks.c
... ... @@ -1640,6 +1640,7 @@
1640 1640 DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_SERVERWORKS, PCI_DEVICE_ID_SERVERWORKS_HT1000_PCIX, quirk_disable_all_msi);
1641 1641 DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, PCI_DEVICE_ID_ATI_RS400_200, quirk_disable_all_msi);
1642 1642 DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, PCI_DEVICE_ID_ATI_RS480, quirk_disable_all_msi);
  1643 +DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_VT3351, quirk_disable_all_msi);
1643 1644  
1644 1645 /* Disable MSI on chipsets that are known to not support it */
1645 1646 static void __devinit quirk_disable_msi(struct pci_dev *dev)
include/linux/pci_ids.h
... ... @@ -1292,6 +1292,7 @@
1292 1292 #define PCI_DEVICE_ID_VIA_P4M890 0x0327
1293 1293 #define PCI_DEVICE_ID_VIA_VT3324 0x0324
1294 1294 #define PCI_DEVICE_ID_VIA_VT3336 0x0336
  1295 +#define PCI_DEVICE_ID_VIA_VT3351 0x0351
1295 1296 #define PCI_DEVICE_ID_VIA_8371_0 0x0391
1296 1297 #define PCI_DEVICE_ID_VIA_8501_0 0x0501
1297 1298 #define PCI_DEVICE_ID_VIA_82C561 0x0561