forcedeth MCP55 msi problems
Subsystems (3)
I have a machine with an Asus motherboard (P5N32-SLI Premium - NVidia MCP55 chipset) where the forcedeth module does not work with msi. This seems to bother quite some people ( see https://bugs.launchpad.net/ubuntu/+source/linux/+bug/136836
).
Reading various forum posts makes me inclined to believe this is a firmware problem, but Asus have no fix with their latest BIOS-upgrade (and I am starting to believe that we will never see one as the last update came in March this year).
Is it an option to workaround this problem using a hardware-specific quirk that disables msi/msix for the device, or will that affect a lot of users that have no issues with this? On my system the NIC identifies as "cb84". I don't know if this is a common factor for all who has this problem, or only for my motherboard. Maybe the benefit of making it work with all MCP55-NICs is worth disabling msi/msix also for unaffected ones?
Does anybody have alternative suggestions?
PATCH 1/1 pci: Added quirk to disable msi for MCP55 NIC on Asus P5N32-SLI Premium
Quoted 9 lines · Andreas Petlund
I have a machine with an Asus motherboard (P5N32-SLI Premium - NVidia MCP55 chipset) where the forcedeth module does not work with msi. This seems to bother quite some people ( see https://bugs.launchpad.net/ubuntu/+source/linux/+bug/136836 ).
Reading various forum posts makes me inclined to believe this is a firmware problem, but Asus have no fix with their latest BIOS-upgrade (and I am starting to believe that we will never see one as the last update came in March this year).
Is it an option to workaround this problem using a hardware-specific quirk that disables msi/msix for the device, or will that affect a lot of users that have no issues with this? On my system the NIC identifies as "cb84". I don't know if this is a common factor for all who has this problem, or only for my motherboard. Maybe the benefit of making it work with all MCP55-NICs is worth disabling msi/msix also for unaffected ones?
Does anybody have alternative suggestions?
This patch detects the known affected motherboard and disables msi for the MCP55 NIC devices, allowing normal netwrk operation without manually having to reload forcedeth module with msi=0 and msix=0.
---drivers/pci/quirks.c | 16 ++++++++++++++++
1 files changed, 16 insertions(+), 0 deletions(-)
drivers/pci/quirks.c +16 -0
@@ -1828,6 +1828,22 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_SERVERWORKS,PCI_DEVICE_ID_SERVERWORKS_HT1000_PXB , ht_enable_msi_mapping); +/* The P5N32-SLI Premium motherboard from Asus has a problem with msi +* for the MCP55 NIC. It is not yet determined whether the msi problem +* also affects other devices. As for now, turn off msi for this device. +*/ +static void __devinit nvenet_msi_disable (struct pci_dev *dev) +{ +if (dmi_name_in_vendors ("P5N32-SLI PREMIUM" )) { +dev_info (&dev->dev, +"Disabling msi for MCP55 NIC on P5N32-SLI Premium\n" ); + dev->no_msi =1 ; + } +} +DECLARE_PCI_FIXUP_EARLY (PCI_VENDOR_ID_NVIDIA , +PCI_DEVICE_ID_NVIDIA_NVENET_15 , + nvenet_msi_disable); +
static void __devinit nv_msi_ht_cap_quirk(struct pci_dev *dev)
{
struct pci_dev *host_bridge;--
PATCH 1/1 pci: Added quirk to disable msi for MCP55 NIC on Asus P5N32-SLI Premium
In reply to Andreas PetlundQuoted 18 lines · Andreas Petlund
I have a machine with an Asus motherboard (P5N32-SLI Premium - NVidia MCP55 chipset) where the forcedeth module does not work with msi. This seems to bother quite some people ( see
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/136836 ).Reading various forum posts makes me inclined to believe this is a firmware problem, but Asus have no fix with their latest BIOS-upgrade (and I am starting to believe that we will never see one as the last update came in March this year).
Is it an option to workaround this problem using a hardware-specific quirk that disables msi/msix for the device, or will that affect a lot of users that have no issues with this? On my system the NIC identifies as "cb84". I don't know if this is a common factor for all who has this problem, or only for my motherboard.
Maybe the benefit of making it work with all MCP55-NICs is worth disabling msi/msix also for unaffected ones?
Quoted 2 lines
Does anybody have alternative suggestions?
This patch detects the known affected motherboard and disables msi for the MCP55 NIC devices, allowing normal network operation without manually having to reload forcedeth module with msi=0 and msix=0.
--- drivers/pci/quirks.c | 16 ++++++++++++++++ 1 files changed, 16 insertions(+), 0 deletions(-)
drivers/pci/quirks.c +16 -0
@@ -1828,6 +1828,22 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_SERVERWORKS,PCI_DEVICE_ID_SERVERWORKS_HT1000_PXB , ht_enable_msi_mapping); +/* The P5N32-SLI Premium motherboard from Asus has a problem with msi +* for the MCP55 NIC. It is not yet determined whether the msi problem +* also affects other devices. As for now, turn off msi for this device. +*/ +static void __devinit nvenet_msi_disable (struct pci_dev *dev) +{ +if (dmi_name_in_vendors ("P5N32-SLI PREMIUM" )) { +dev_info (&dev->dev, +"Disabling msi for MCP55 NIC on P5N32-SLI Premium\n" ); + dev->no_msi =1 ; + } +} +DECLARE_PCI_FIXUP_EARLY (PCI_VENDOR_ID_NVIDIA , +PCI_DEVICE_ID_NVIDIA_NVENET_15 , + nvenet_msi_disable); +static void __devinit nv_msi_ht_cap_quirk (struct pci_dev *dev) {struct pci_dev *host_bridge;
Signature · 1 line
1.5.6.3