* [GIT PATCH] PCI patches for 2.6.22-rc3
@ 2007-06-01 1:16 Greg KH
2007-06-01 1:16 ` [PATCH 1/5] msi: fix ARM compile Greg Kroah-Hartman
0 siblings, 1 reply; 6+ messages in thread
From: Greg KH @ 2007-06-01 1:16 UTC (permalink / raw)
To: Linus Torvalds, Andrew Morton; +Cc: linux-kernel, linux-pci, pcihpd-discuss
Here are some bugfixes for PCI your 2.6.22-rc3 git tree.
All of these have been in the -mm tree for a month or so.
Please pull from:
master.kernel.org:/pub/scm/linux/kernel/git/gregkh/pci-2.6.git/
The full patches will be sent to the linux-pci mailing list, if anyone
wants to see it
thanks,
greg k-h
arch/i386/pci/fixup.c | 11 +++++++++++
drivers/pci/msi.c | 2 +-
drivers/pci/quirks.c | 2 ++
drivers/pci/search.c | 3 ++-
include/linux/pci_ids.h | 2 ++
5 files changed, 18 insertions(+), 2 deletions(-)
---------------
Andy Gospodarek (1):
PCI: disable MSI by default on systems with Serverworks HT1000 chips
Ben Gardner (1):
PCI: Fix pci_find_present
Dan Williams (1):
msi: fix ARM compile
Ivan Kokshaysky (1):
PCI: i386: fixup for Siemens Nixdorf AG FSC Multiprocessor Interrupt Controllers
Jay Cliburn (1):
PCI: quirk disable MSI on via vt3351
^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH 1/5] msi: fix ARM compile
2007-06-01 1:16 [GIT PATCH] PCI patches for 2.6.22-rc3 Greg KH
@ 2007-06-01 1:16 ` Greg Kroah-Hartman
2007-06-01 1:16 ` [PATCH 2/5] PCI: disable MSI by default on systems with Serverworks HT1000 chips Greg Kroah-Hartman
0 siblings, 1 reply; 6+ messages in thread
From: Greg Kroah-Hartman @ 2007-06-01 1:16 UTC (permalink / raw)
To: linux-pci; +Cc: linux-kernel, Dan Williams, Greg Kroah-Hartman
From: Dan Williams <dan.j.williams@intel.com>
In file included from drivers/pci/msi.c:22:
include/asm/smp.h:17:26: asm/arch/smp.h: No such file or directory
include/asm/smp.h:20:3: #error "<asm-arm/smp.h> included in non-SMP build"
include/asm/smp.h:23:1: warning: "raw_smp_processor_id" redefined
In file included from include/linux/sched.h:65,
from include/linux/mm.h:4,
from drivers/pci/msi.c:10:
include/linux/smp.h:85:1: warning: this is the location of the previous
definition
Tested on powerpc, i386, and x86_64.
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Acked-by: Eric W. Biederman <ebiederm@xmission.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
---
drivers/pci/msi.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/drivers/pci/msi.c b/drivers/pci/msi.c
index d9cbd58..f7f7470 100644
--- a/drivers/pci/msi.c
+++ b/drivers/pci/msi.c
@@ -15,10 +15,10 @@
#include <linux/pci.h>
#include <linux/proc_fs.h>
#include <linux/msi.h>
+#include <linux/smp.h>
#include <asm/errno.h>
#include <asm/io.h>
-#include <asm/smp.h>
#include "pci.h"
#include "msi.h"
--
1.5.2
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH 2/5] PCI: disable MSI by default on systems with Serverworks HT1000 chips
2007-06-01 1:16 ` [PATCH 1/5] msi: fix ARM compile Greg Kroah-Hartman
@ 2007-06-01 1:16 ` Greg Kroah-Hartman
2007-06-01 1:16 ` [PATCH 3/5] PCI: Fix pci_find_present Greg Kroah-Hartman
0 siblings, 1 reply; 6+ messages in thread
From: Greg Kroah-Hartman @ 2007-06-01 1:16 UTC (permalink / raw)
To: linux-pci
Cc: linux-kernel, Andy Gospodarek, Eric W. Biederman, Andrew Morton,
Greg Kroah-Hartman
From: Andy Gospodarek <andy@greyhouse.net>
I've been seeing lots of messages like these:
eth0: No interrupt was generated using MSI, switching to INTx mode. Please
report this failure to the PCI maintainer and include system chipset
information.
On several systems that use the following Severworks HT1000 (also sometimes
labeled as a Broadcom chipset as well) bridge chips. It doesn't appear MSI
works well (if at all) on these systems.
Signed-off-by: Andy Gospodarek <andy@greyhouse.net>
Cc: "Eric W. Biederman" <ebiederm@xmission.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
---
drivers/pci/quirks.c | 1 +
include/linux/pci_ids.h | 1 +
2 files changed, 2 insertions(+), 0 deletions(-)
diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c
index 1cff65f..4937982 100644
--- a/drivers/pci/quirks.c
+++ b/drivers/pci/quirks.c
@@ -1637,6 +1637,7 @@ static void __init quirk_disable_all_msi(struct pci_dev *dev)
printk(KERN_WARNING "PCI: MSI quirk detected. MSI deactivated.\n");
}
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_SERVERWORKS, PCI_DEVICE_ID_SERVERWORKS_HT1000_PCIX, 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);
diff --git a/include/linux/pci_ids.h b/include/linux/pci_ids.h
index 4712e26..c4a14c6 100644
--- a/include/linux/pci_ids.h
+++ b/include/linux/pci_ids.h
@@ -1437,6 +1437,7 @@
#define PCI_DEVICE_ID_SERVERWORKS_LE 0x0009
#define PCI_DEVICE_ID_SERVERWORKS_GCNB_LE 0x0017
#define PCI_DEVICE_ID_SERVERWORKS_EPB 0x0103
+#define PCI_DEVICE_ID_SERVERWORKS_HT1000_PCIX 0x0104
#define PCI_DEVICE_ID_SERVERWORKS_HT2000_PCIE 0x0132
#define PCI_DEVICE_ID_SERVERWORKS_OSB4 0x0200
#define PCI_DEVICE_ID_SERVERWORKS_CSB5 0x0201
--
1.5.2
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH 3/5] PCI: Fix pci_find_present
2007-06-01 1:16 ` [PATCH 2/5] PCI: disable MSI by default on systems with Serverworks HT1000 chips Greg Kroah-Hartman
@ 2007-06-01 1:16 ` Greg Kroah-Hartman
2007-06-01 1:16 ` [PATCH 4/5] PCI: i386: fixup for Siemens Nixdorf AG FSC Multiprocessor Interrupt Controllers Greg Kroah-Hartman
0 siblings, 1 reply; 6+ messages in thread
From: Greg Kroah-Hartman @ 2007-06-01 1:16 UTC (permalink / raw)
To: linux-pci
Cc: linux-kernel, Ben Gardner, Alan Cox, Andrew Morton,
Greg Kroah-Hartman
From: Ben Gardner <gardner.ben@gmail.com>
pci_find_present() is only matching the last item in the list of ids.
The break after the match is found only escapes the for loop, not the
while loop, so found gets reset to NULL on the next pass.
Signed-off-by: Ben Gardner <gardner.ben@gmail.com>
Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
---
drivers/pci/search.c | 3 ++-
1 files changed, 2 insertions(+), 1 deletions(-)
diff --git a/drivers/pci/search.c b/drivers/pci/search.c
index b137a27..c132324 100644
--- a/drivers/pci/search.c
+++ b/drivers/pci/search.c
@@ -403,10 +403,11 @@ const struct pci_device_id *pci_find_present(const struct pci_device_id *ids)
while (ids->vendor || ids->subvendor || ids->class_mask) {
list_for_each_entry(dev, &pci_devices, global_list) {
if ((found = pci_match_one_device(ids, dev)) != NULL)
- break;
+ goto exit;
}
ids++;
}
+exit:
up_read(&pci_bus_sem);
return found;
}
--
1.5.2
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH 4/5] PCI: i386: fixup for Siemens Nixdorf AG FSC Multiprocessor Interrupt Controllers
2007-06-01 1:16 ` [PATCH 3/5] PCI: Fix pci_find_present Greg Kroah-Hartman
@ 2007-06-01 1:16 ` Greg Kroah-Hartman
2007-06-01 1:16 ` [PATCH 5/5] PCI: quirk disable MSI on via vt3351 Greg Kroah-Hartman
0 siblings, 1 reply; 6+ messages in thread
From: Greg Kroah-Hartman @ 2007-06-01 1:16 UTC (permalink / raw)
To: linux-pci
Cc: linux-kernel, Ivan Kokshaysky, Wolfgang Erig, Chuck Ebbert,
Andi Kleen, Andrew Morton, Greg Kroah-Hartman
From: Ivan Kokshaysky <ink@jurassic.park.msu.ru>
Wolfgang gets:
PCI: Cannot allocate resource region 0 of device 0000:00:04.0
PCI: Error while updating region 0000:00:04.0/0 (a8008000 != fec08000)
Note that the BAR seems to have high address bits hardwired to fec00000.
And device 0000:00:04.0 is
00:04.0 System peripheral: Siemens Nixdorf AG FSC Multiprocessor Interrupt Controller (rev 02)
I'd guess that when we try to reassign this resource, PCI interrupts might
just stop working. This could explain SCSI timeouts and other weird things.
Cc: Wolfgang Erig <Wolfgang.Erig@gmx.de>
Cc: Chuck Ebbert <cebbert@redhat.com>
Cc: Andi Kleen <ak@suse.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
---
arch/i386/pci/fixup.c | 11 +++++++++++
1 files changed, 11 insertions(+), 0 deletions(-)
diff --git a/arch/i386/pci/fixup.c b/arch/i386/pci/fixup.c
index b62eafb..b95b429 100644
--- a/arch/i386/pci/fixup.c
+++ b/arch/i386/pci/fixup.c
@@ -436,3 +436,14 @@ DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_CYRIX, PCI_DEVICE_ID_CYRIX_5530_LEGACY,
pci_early_fixup_cyrix_5530);
DECLARE_PCI_FIXUP_RESUME(PCI_VENDOR_ID_CYRIX, PCI_DEVICE_ID_CYRIX_5530_LEGACY,
pci_early_fixup_cyrix_5530);
+
+/*
+ * Siemens Nixdorf AG FSC Multiprocessor Interrupt Controller:
+ * prevent update of the BAR0, which doesn't look like a normal BAR.
+ */
+static void __devinit pci_siemens_interrupt_controller(struct pci_dev *dev)
+{
+ dev->resource[0].flags |= IORESOURCE_PCI_FIXED;
+}
+DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_SIEMENS, 0x0015,
+ pci_siemens_interrupt_controller);
--
1.5.2
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH 5/5] PCI: quirk disable MSI on via vt3351
2007-06-01 1:16 ` [PATCH 4/5] PCI: i386: fixup for Siemens Nixdorf AG FSC Multiprocessor Interrupt Controllers Greg Kroah-Hartman
@ 2007-06-01 1:16 ` Greg Kroah-Hartman
0 siblings, 0 replies; 6+ messages in thread
From: Greg Kroah-Hartman @ 2007-06-01 1:16 UTC (permalink / raw)
To: linux-pci; +Cc: linux-kernel, Jay Cliburn, Greg Kroah-Hartman
From: Jay Cliburn <jacliburn@bellsouth.net>
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>
---
drivers/pci/quirks.c | 1 +
include/linux/pci_ids.h | 1 +
2 files changed, 2 insertions(+), 0 deletions(-)
diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c
index 4937982..01d8f8a 100644
--- a/drivers/pci/quirks.c
+++ b/drivers/pci/quirks.c
@@ -1640,6 +1640,7 @@ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_SERVERWORKS, PCI_DEVICE_ID_SERVERWORKS_GCN
DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_SERVERWORKS, PCI_DEVICE_ID_SERVERWORKS_HT1000_PCIX, 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)
diff --git a/include/linux/pci_ids.h b/include/linux/pci_ids.h
index c4a14c6..02cf0cd 100644
--- a/include/linux/pci_ids.h
+++ b/include/linux/pci_ids.h
@@ -1292,6 +1292,7 @@
#define PCI_DEVICE_ID_VIA_P4M890 0x0327
#define PCI_DEVICE_ID_VIA_VT3324 0x0324
#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
--
1.5.2
^ permalink raw reply related [flat|nested] 6+ messages in thread
end of thread, other threads:[~2007-06-01 1:17 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-06-01 1:16 [GIT PATCH] PCI patches for 2.6.22-rc3 Greg KH
2007-06-01 1:16 ` [PATCH 1/5] msi: fix ARM compile Greg Kroah-Hartman
2007-06-01 1:16 ` [PATCH 2/5] PCI: disable MSI by default on systems with Serverworks HT1000 chips Greg Kroah-Hartman
2007-06-01 1:16 ` [PATCH 3/5] PCI: Fix pci_find_present Greg Kroah-Hartman
2007-06-01 1:16 ` [PATCH 4/5] PCI: i386: fixup for Siemens Nixdorf AG FSC Multiprocessor Interrupt Controllers Greg Kroah-Hartman
2007-06-01 1:16 ` [PATCH 5/5] PCI: quirk disable MSI on via vt3351 Greg Kroah-Hartman
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox