]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
[PATCH] PCI: quirk disable MSI on via vt3351
authorJay Cliburn <jacliburn@bellsouth.net>
Sat, 26 May 2007 22:01:04 +0000 (17:01 -0500)
committerChris Wright <chrisw@sous-sol.org>
Mon, 11 Jun 2007 18:36:47 +0000 (11:36 -0700)
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>
Signed-off-by: Chris Wright <chrisw@sous-sol.org>
drivers/pci/quirks.c
include/linux/pci_ids.h

index 5af9125e106abf4c7f10c95950c546e947fe95d9..e2d81af34a745822b14b15452519baafb49fd123 100644 (file)
@@ -1751,6 +1751,7 @@ static void __init quirk_disable_all_msi(struct pci_dev *dev)
 DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_SERVERWORKS, PCI_DEVICE_ID_SERVERWORKS_GCNB_LE, quirk_disable_all_msi);
 DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, PCI_DEVICE_ID_ATI_RS400_200, quirk_disable_all_msi);
 DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, PCI_DEVICE_ID_ATI_RS480, quirk_disable_all_msi);
+DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_VT3351, quirk_disable_all_msi);
 
 /* Disable MSI on chipsets that are known to not support it */
 static void __devinit quirk_disable_msi(struct pci_dev *dev)
index 600308fdf9ce31b6ece7efc34dbbc6fe633888e6..2a0a70d57ece75d7e65145cc7104ff99b955b151 100644 (file)
 #define PCI_DEVICE_ID_VIA_P4M800CE     0x0314
 #define PCI_DEVICE_ID_VIA_P4M890       0x0327
 #define PCI_DEVICE_ID_VIA_VT3336       0x0336
+#define PCI_DEVICE_ID_VIA_VT3351       0x0351
 #define PCI_DEVICE_ID_VIA_8371_0       0x0391
 #define PCI_DEVICE_ID_VIA_8501_0       0x0501
 #define PCI_DEVICE_ID_VIA_82C561       0x0561