Another PCI fix for 2.6.12-rc6
PATCH 1/1 Another PCI fix for 2.6.12-rc6
Narendra from Broadcom pointed out that the following patch had not made it into your tree (it was in mine for a long time, along with the -mm releases). It is needed for 2.6.12 because:
"Broadcom already submitted the bnx2 driver for the 5706 gigabit driver which enables MSI on all systems that support PCI-X. That patch has already gone into 2.6.12-rc6. So if the MSI disable patch does not get into 2.6.12, anyone who uses the 5706 on the Serverworks chipset platform, will have interrupt failures."
Please pull from:
rsync://rsync.kernel.org/pub/scm/linux/kernel/git/gregkh/usb-2.6.git/
The full patch will be sent to the linux-kernel and linux-pci mailing lists, if anyone wants to see them.
thanks,
greg k-h
drivers/pci/quirks.c | 6 ++++++ 1 files changed, 6 insertions(+)
-----
Narendra Sankar:
PCI: MSI functionality broken on Serverworks GC chipset
PATCH 1/1 PCI: MSI functionality broken on Serverworks GC chipset
[PATCH] PCI: MSI functionality broken on Serverworks GC chipset
MSI functionality is broken on the GC_LE x86 chipset that Serverworks developed and that is being used in various platforms today. Broadcom is going to push out to the kernel MSI enabled Gigabit drivers (in the very near future), and we would like to make sure that MSI does not get enabled on any platforms using the GC_LE chipset (device id 0x17). Following the AMD 8131 example, I am including a patch to disable MSI functionality when a GCNB_LE is detected. Please let me know if there are any issues with this. This is a permanent fix for this chipset, as the hardware will not be updated.
---
commit 1e06276704c101bd1ae7b62879faaffcd7496a3e
tree 0b983e8000ed7f57d189f68097a6e78ad5c33488
parent 76854ceac3ef3408ab9a50a2521147fb14779f58
author Narendra Sankar <[email protected]> Fri, 06 May 2005 14:12:05 -0700 committer Greg Kroah-Hartman <[email protected]> Thu, 09 Jun 2005 17:04:30 -0700
drivers/pci/quirks.c | 6 ++++++ 1 files changed, 6 insertions(+), 0 deletions(-)
drivers/pci/quirks.c +6 -0
@@ -456,6 +456,12 @@ static void __init quirk_amd_8131_ioapic }DECLARE_PCI_FIXUP_FINAL (PCI_VENDOR_ID_AMD ,PCI_DEVICE_ID_AMD_8131_APIC , quirk_amd_8131_ioapic ); +static void __init quirk_svw_msi (struct pci_dev *dev) +{ + pci_msi_quirk =1 ; +printk (KERN_WARNING "PCI: MSI quirk detected. pci_msi_quirk set.\n" ); +} +DECLARE_PCI_FIXUP_FINAL (PCI_VENDOR_ID_SERVERWORKS ,PCI_DEVICE_ID_SERVERWORKS_GCNB_LE , quirk_svw_msi );#endif /* CONFIG_X86_IO_APIC */
Re: [PATCH] PCI: MSI functionality broken on Serverworks GC chipset
From: Greg KH <[email protected]>
Date: Thu, 9 Jun 2005 15:21:33 -0700
Quoted 12 lines
[PATCH] PCI: MSI functionality broken on Serverworks GC chipset
MSI functionality is broken on the
GC_LEx86 chipset that Serverworks developed and that is being used in various platforms today. Broadcom is going to push out to the kernel MSI enabled Gigabit drivers (in the very near future), and we would like to make sure that MSI does not get enabled on any platforms using theGC_LEchipset (device id0x17). Following the AMD 8131 example, I am including a patch to disable MSI functionality when aGCNB_LEis detected. Please let me know if there are any issues with this. This is a permanent fix for this chipset, as the hardware will not be updated.
Quoted 2 lines
Signed-off-by Narendra Sankar <[email protected]>Signed-off-by Greg Kroah-Hartman <[email protected]>
"Broadcom's driver" already has MSI support and has a self-test that checks if MSI operates correctly, and will back out of using MSI if the MSI test does not pass.
So this patch is not needed for proper functioning of that driver.
This changelog description is very misleading, at best.
From: Greg KH <[email protected]>
Date: Thu, 9 Jun 2005 15:20:33 -0700
Quoted 5 lines
"Broadcom already submitted the bnx2 driver for the 5706 gigabit driver which enables MSI on all systems that support PCI-X. That patch has already gone into 2.6.12-rc6. So if the MSI disable patch does not get into 2.6.12, anyone who uses the 5706 on the Serverworks chipset platform, will have interrupt failures."
The bnx2 driver can get the MSI test added to it just like the tg3 driver does. I don't see why the same code wasn't propagated. Either both drivers need that MSI test code, or both do not.
That doesn't make any sense, one testing for correct MSI functionality while the other does not.
Quoted 13 lines · David S. Miller
From: Greg KH <[email protected]>
Date: Thu, 9 Jun 2005 15:20:33 -0700Quoted 7 lines
"Broadcom already submitted the bnx2 driver for the 5706 gigabit driver which enables MSI on all systems that support PCI-X. That patch has already gone into 2.6.12-rc6. So if the MSI disable patch does not get into 2.6.12, anyone who uses the 5706 on the Serverworks chipset platform, will have interrupt failures."
Quoted 10 lines
The bnx2 driver can get the MSI test added to it just like the tg3 driver does. I don't see why the same code wasn't propagated. Either both drivers need that MSI test code, or both do not.
That doesn't make any sense, one testing for correct MSI functionality while the other does not.
Hi everyone
The platform quirk is valid for other PCI-X devices that try to enable MSI on that Serverworks chipset. When I submitted the msi quirk patch, the bnx2 driver did not have the msi check. I guess it got added. Different parts of the organization :(.
However the fact that MSI functionality on the GC_LE is broken could potentially cause problems with other devices that try to enable MSI. This is the only version of the chipset that the functionality is broken on. Other variants have working MSI implementations.
So it would still be useful to have this patch in, would it not?
Thanks
Naren Sankar
Broadcom/Serverworks.
From: "Narendra Sankar" <[email protected]>
Date: Thu, 09 Jun 2005 15:48:28 -0700
Quoted 1 line
So it would still be useful to have this patch in, would it not?
Absolutely, the patch should go in.
I just want to make sure the descrepency between the two Broadcom drivers gets resolved. TG3 does a MSI correctness check, BNX2 does not. And this is what doesn't make any sense.
Quoted 9 lines · David S. Miller
From: "Narendra Sankar" <[email protected]>
Date: Thu, 09 Jun 2005 15:48:28 -0700Quoted 3 lines
So it would still be useful to have this patch in, would it not?
Quoted 8 lines
Absolutely, the patch should go in.
I just want to make sure the descrepency between the two Broadcom drivers gets resolved. TG3 does a MSI correctness check, BNX2 does not. And this is what doesn't make any sense.
Actually looking at the bnx2.c code from jeffG 2.6.13 git tree, it seems that it also tests for MSIs being delivered.
So both tg3 and bnx2 test for MSI correctness.
My original comment when submitting the patch, was under the assumption that these tests were not being done. However that code has got added to both drivers.
Naren
Narendra> So it would still be useful to have this patch in, would Narendra> it not?
Yes, we should use the PCI quirk to disable MSI when we know a host bridge does not support MSI.
- R.