From patchwork Fri Nov 14 10:02:01 2008 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Petlund X-Patchwork-Id: 8751 X-Patchwork-Delegate: jgarzik@pobox.com Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.176.167]) by ozlabs.org (Postfix) with ESMTP id CD366DDDF9 for ; Fri, 14 Nov 2008 21:41:13 +1100 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751392AbYKNKlM (ORCPT ); Fri, 14 Nov 2008 05:41:12 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1751376AbYKNKlL (ORCPT ); Fri, 14 Nov 2008 05:41:11 -0500 Received: from mail-forward2.uio.no ([129.240.10.71]:36424 "EHLO mail-forward2.uio.no" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751040AbYKNKlK (ORCPT ); Fri, 14 Nov 2008 05:41:10 -0500 X-Greylist: delayed 2346 seconds by postgrey-1.27 at vger.kernel.org; Fri, 14 Nov 2008 05:41:09 EST Received: from exim by mail-out2.uio.no with local-bsmtp (Exim 4.69) (envelope-from ) id 1L0vV4-0001Hz-HR for netdev@vger.kernel.org; Fri, 14 Nov 2008 11:02:02 +0100 Received: from mail-mx4.uio.no ([129.240.10.45]) by mail-out2.uio.no with esmtp (Exim 4.69) (envelope-from ) id 1L0vV4-0001Hw-GL; Fri, 14 Nov 2008 11:02:02 +0100 Received: from banaitja.simula.no ([129.240.228.18] helo=[192.168.101.23]) by mail-mx4.uio.no with esmtpsa (TLSv1:AES256-SHA:256) user apetlund (Exim 4.69) (envelope-from ) id 1L0vV4-0000w7-8A; Fri, 14 Nov 2008 11:02:02 +0100 Message-ID: <491D4C99.3070208@simula.no> Date: Fri, 14 Nov 2008 11:02:01 +0100 From: Andreas Petlund User-Agent: Thunderbird 2.0.0.17 (X11/20080925) MIME-Version: 1.0 To: netdev@vger.kernel.org CC: jeff@garzik.org Subject: [PATCH] pci: Added quirk to disable msi for MCP55 NIC on Asus P5N32-SLI Premium References: <037FCE6B-850E-4A88-B4C3-B856B306377E@petlund.no> In-Reply-To: <037FCE6B-850E-4A88-B4C3-B856B306377E@petlund.no> X-UiO-Spam-info: not spam, SpamAssassin (score=-5.0, required=5.0, autolearn=disabled, UIO_MAIL_IS_INTERNAL=-5, uiobl=NO, uiouri=NO) X-UiO-Scanned: D03DF7C378CA275AA0CA9A3A745B00204885DC5F X-UiO-SPAM-Test: remote_host: 129.240.228.18 spam_score: -49 maxlevel 200 minaction 2 bait 0 mail/h: 1 total 10006 max/h 49 blacklist 0 greylist 0 ratelimit 0 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Andreas Petlund wrote: > 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. Signed-off-by: Andreas Petlund --- drivers/pci/quirks.c | 16 ++++++++++++++++ 1 files changed, 16 insertions(+), 0 deletions(-) struct pci_dev *host_bridge; -- -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c index 5049a47..1bbd912 100644 --- a/drivers/pci/quirks.c +++ b/drivers/pci/quirks.c @@ -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) {