On Sat, 26 Dec 2009 11:13:48 +0100 klaas de waal <klaas.de.waal@xxxxxxxxx> wrote: > Hi, > > This is a bug report as requested in > linux-2.6.32.2/Documentatoin/PCI/MSI-HOWTO.txt > > Problem: Ethernet is not reliable: gives timeouts like this (in > /var/log/messages): > Dec 26 00:37:55 zolder kernel: NETDEV WATCHDOG: eth0 (r8169): transmit > queue 0 timed out > > The ethernet controller is the only device on the motherboard that > uses MSI interrupts: > > $ cat /proc/interrupts > ... > 26: 89 9245334 PCI-MSI-edge eth0 > ... > > Adding "pci=nomsi" does change this to: > ... > 16: 88 4114 IO-APIC-fasteoi nouveau, eth0 > ... > and this solves the problem. > > > Result of "lspci -v": > Hm we should probably update the howto to include the PCI IDs and DMI info. Something like this patch should help if you use dmidecode to figure out which string to pass to "dmi_name_in_vendors" (there are alternate DMI functions available too, if you can find one to match your P5GC board). Can you fix it up for your board and give it a try? Thanks, -- Jesse Barnes, Intel Open Source Technology Center diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c index c746943..922f0a6 100644 --- a/drivers/pci/quirks.c +++ b/drivers/pci/quirks.c @@ -2203,6 +2203,22 @@ DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_NVIDIA, PCI_DEVICE_ID_NVIDIA_NVENET_15, nvenet_msi_disable); +/* + * On Asus P5GC, the Realtek NIC driver fails if MSI is enabled. This could + * be a chipset problem or a NIC hw problem. Just disable the NIC for now. + */ +static void __devinit asus_realtek_msi_disable(struct pci_dev *dev) +{ + if (dmi_name_in_vendors("ASUS P5GC")) { + dev_info(&dev->dev, + "Disabling MSI for Realtek NIC on P5GC\n"); + dev->no_msi = 1; + } +} +DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_REALTEK, + PCI_DEVICE_ID_REALTEK_8139, + asus_realtek_msi_disable); + static int __devinit ht_check_msi_mapping(struct pci_dev *dev) { int pos, ttl = 48; -- To unsubscribe from this list: send the line "unsubscribe linux-pci" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html