aboutsummaryrefslogtreecommitdiffstats
path: root/pci
diff options
context:
space:
mode:
authorGreg Kroah-Hartman <gregkh@suse.de>2006-07-03 11:11:11 -0700
committerGreg Kroah-Hartman <gregkh@suse.de>2006-07-03 11:11:11 -0700
commitbbc466d1931e2ca1f095824f455833944d9a35ae (patch)
tree193544144770e17a7cb5a0f9b45a8ed6402180e9 /pci
parentedebd83392a7b67e4b4aa1a3d387f0593d07f053 (diff)
downloadpatches-bbc466d1931e2ca1f095824f455833944d9a35ae.tar.gz
move usbip patches and remove MSI ones.
Diffstat (limited to 'pci')
-rw-r--r--pci/msi-blacklist-pci-e-chipsets-depending-on-hypertransport-msi-capabality.patch102
-rw-r--r--pci/msi-drop-pci_msi_quirk.patch63
-rw-r--r--pci/msi-factorize-common-msi-detection-code-from-pci_enable_msi-and-msix.patch98
-rw-r--r--pci/msi-merge-existing-msi-disabling-quirks.patch72
-rw-r--r--pci/msi-rename-pci_cap_id_ht_irqconf-into-pci_cap_id_ht.patch43
-rw-r--r--pci/msi-stop-inheriting-bus-flags-and-check-root-chipset-bus-flags-instead.patch70
6 files changed, 0 insertions, 448 deletions
diff --git a/pci/msi-blacklist-pci-e-chipsets-depending-on-hypertransport-msi-capabality.patch b/pci/msi-blacklist-pci-e-chipsets-depending-on-hypertransport-msi-capabality.patch
deleted file mode 100644
index 7d22bbf0e4dd0..0000000000000
--- a/pci/msi-blacklist-pci-e-chipsets-depending-on-hypertransport-msi-capabality.patch
+++ /dev/null
@@ -1,102 +0,0 @@
-From owner-linux-pci@atrey.karlin.mff.cuni.cz Thu Jun 22 06:56:20 2006
-Date: Thu, 22 Jun 2006 09:56:01 -0400
-From: Brice Goglin <brice@myri.com>
-To: linux-pci@atrey.karlin.mff.cuni.cz
-Cc: linux-kernel@vger.kernel.org, Dave Olson <olson@unixfolk.com>
-Subject: [PATCH 3/6 v4] MSI: Blacklist PCI-E chipsets depending on Hypertransport MSI capabality
-Message-ID: <20060622135601.GA2416@myri.com>
-Content-Disposition: inline
-
-Introduce msi_ht_cap_enabled() to check the MSI capability in the
-Hypertransport configuration space.
-It is used in a generic quirk quirk_msi_ht_cap() to check whether
-MSI is enabled on hypertransport chipset, and a nVidia specific quirk
-quirk_nvidia_ck804_msi_ht_cap() where two 2 HT MSI mappings have to
-be checked.
-Both quirks set the PCI_BUS_FLAGS_NO_MSI flags when MSI is disabled.
-
-Signed-off-by: Brice Goglin <brice@myri.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-
----
- drivers/pci/quirks.c | 58 ++++++++++++++++++++++++++++++++++++++++++++++++
- include/linux/pci_ids.h | 1
- 2 files changed, 59 insertions(+)
-
---- gregkh-2.6.orig/drivers/pci/quirks.c
-+++ gregkh-2.6/drivers/pci/quirks.c
-@@ -1545,6 +1545,64 @@ static void __devinit quirk_disable_msi(
- DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_8131_BRIDGE, quirk_disable_msi);
- DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_SERVERWORKS, PCI_DEVICE_ID_SERVERWORKS_GCNB_LE,
- quirk_disable_msi);
-+
-+/* Go through the list of Hypertransport capabilities and
-+ * return 1 if a HT MSI capability is found and enabled */
-+static pci_bus_flags_t __devinit msi_ht_cap_enabled(struct pci_dev *dev)
-+{
-+ u8 pos;
-+ for (pos = pci_find_capability(dev, PCI_CAP_ID_HT);
-+ pos;
-+ pos = pci_find_next_capability(dev, pos, PCI_CAP_ID_HT)) {
-+ u32 cap_hdr;
-+ /* MSI mapping section according to Hypertransport spec */
-+ if (pci_read_config_dword(dev, pos, &cap_hdr) == 0
-+ && (cap_hdr & 0xf8000000) == 0xa8000000 /* MSI mapping */) {
-+ printk(KERN_INFO "PCI: Found HT MSI mapping on %s with capability %s\n",
-+ pci_name(dev), cap_hdr & 0x10000 ? "enabled" : "disabled");
-+ return (cap_hdr & 0x10000) != 0; /* MSI mapping cap enabled */
-+ }
-+ }
-+ return 0;
-+}
-+
-+/* Check the hypertransport MSI mapping to know whether MSI is enabled or not */
-+static void __devinit quirk_msi_ht_cap(struct pci_dev *dev)
-+{
-+ if (!dev->subordinate)
-+ return;
-+
-+ if (!msi_ht_cap_enabled(dev)) {
-+ printk(KERN_WARNING "PCI: MSI quirk detected. "
-+ "PCI_BUS_FLAGS_NO_MSI set for %s subordinate bus.\n",
-+ pci_name(dev));
-+ dev->subordinate->bus_flags |= PCI_BUS_FLAGS_NO_MSI;
-+ }
-+}
-+DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_SERVERWORKS, PCI_DEVICE_ID_SERVERWORKS_HT2000_PCIE, quirk_msi_ht_cap);
-+
-+/* The nVidia CK804 chipset may have 2 HT MSI mappings.
-+ * MSI are supported if the MSI capability set in any of these mappings.
-+ */
-+static void __devinit quirk_nvidia_ck804_msi_ht_cap(struct pci_dev *dev)
-+{
-+ struct pci_dev *pdev;
-+
-+ if (!dev->subordinate)
-+ return;
-+
-+ /* check HT MSI cap on this chipset and the root one.
-+ * a single one having MSI is enough to be sure that MSI are supported.
-+ */
-+ pdev = pci_find_slot(dev->bus->number, 0);
-+ if (!msi_ht_cap_enabled(dev) && !msi_ht_cap_enabled(pdev)) {
-+ printk(KERN_WARNING "PCI: MSI quirk detected. "
-+ "PCI_BUS_FLAGS_NO_MSI set for %s subordinate bus.\n",
-+ pci_name(dev));
-+ dev->subordinate->bus_flags |= PCI_BUS_FLAGS_NO_MSI;
-+ }
-+}
-+DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_NVIDIA, PCI_DEVICE_ID_NVIDIA_CK804_PCIE, quirk_nvidia_ck804_msi_ht_cap);
- #endif /* CONFIG_PCI_MSI */
-
- EXPORT_SYMBOL(pcie_mch_quirk);
---- gregkh-2.6.orig/include/linux/pci_ids.h
-+++ gregkh-2.6/include/linux/pci_ids.h
-@@ -1408,6 +1408,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_HT2000_PCIE 0x0132
- #define PCI_DEVICE_ID_SERVERWORKS_OSB4 0x0200
- #define PCI_DEVICE_ID_SERVERWORKS_CSB5 0x0201
- #define PCI_DEVICE_ID_SERVERWORKS_CSB6 0x0203
diff --git a/pci/msi-drop-pci_msi_quirk.patch b/pci/msi-drop-pci_msi_quirk.patch
deleted file mode 100644
index 32029379497cb..0000000000000
--- a/pci/msi-drop-pci_msi_quirk.patch
+++ /dev/null
@@ -1,63 +0,0 @@
-From owner-linux-pci@atrey.karlin.mff.cuni.cz Tue Jun 20 19:33:34 2006
-Date: Tue, 20 Jun 2006 22:33:18 -0400
-From: Brice Goglin <brice@myri.com>
-To: linux-pci@atrey.karlin.mff.cuni.cz
-Cc: linux-kernel@vger.kernel.org
-Subject: [PATCH 6/6] MSI: Drop pci_msi_quirk
-Message-ID: <20060621023317.GF16292@myri.com>
-Content-Disposition: inline
-
-pci_msi_quirk is not used anymore and using bus_flags should be preferred.
-Drop pci_msi_quirk completely.
-
-Signed-off-by: Brice Goglin <brice@myri.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-
----
- drivers/pci/msi.c | 7 -------
- drivers/pci/pci.h | 6 ------
- drivers/pci/quirks.c | 2 --
- 3 files changed, 15 deletions(-)
-
---- gregkh-2.6.orig/drivers/pci/msi.c
-+++ gregkh-2.6/drivers/pci/msi.c
-@@ -351,13 +351,6 @@ static int msi_init(void)
- if (!status)
- return status;
-
-- if (pci_msi_quirk) {
-- pci_msi_enable = 0;
-- printk(KERN_WARNING "PCI: MSI quirk detected. MSI disabled.\n");
-- status = -EINVAL;
-- return status;
-- }
--
- status = msi_arch_init();
- if (status < 0) {
- pci_msi_enable = 0;
---- gregkh-2.6.orig/drivers/pci/pci.h
-+++ gregkh-2.6/drivers/pci/pci.h
-@@ -42,12 +42,6 @@ extern void pci_remove_legacy_files(stru
- /* Lock for read/write access to pci device and bus lists */
- extern struct rw_semaphore pci_bus_sem;
-
--#ifdef CONFIG_X86_IO_APIC
--extern int pci_msi_quirk;
--#else
--#define pci_msi_quirk 0
--#endif
--
- #ifdef CONFIG_PCI_MSI
- void disable_msi_mode(struct pci_dev *dev, int pos, int type);
- void pci_no_msi(void);
---- gregkh-2.6.orig/drivers/pci/quirks.c
-+++ gregkh-2.6/drivers/pci/quirks.c
-@@ -575,8 +575,6 @@ static void __init quirk_ioapic_rmw(stru
- }
- DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_SI, PCI_ANY_ID, quirk_ioapic_rmw );
-
--int pci_msi_quirk;
--
- #define AMD8131_revA0 0x01
- #define AMD8131_revB0 0x11
- #define AMD8131_MISC 0x40
diff --git a/pci/msi-factorize-common-msi-detection-code-from-pci_enable_msi-and-msix.patch b/pci/msi-factorize-common-msi-detection-code-from-pci_enable_msi-and-msix.patch
deleted file mode 100644
index 6fd32b53aa17e..0000000000000
--- a/pci/msi-factorize-common-msi-detection-code-from-pci_enable_msi-and-msix.patch
+++ /dev/null
@@ -1,98 +0,0 @@
-From owner-linux-pci@atrey.karlin.mff.cuni.cz Tue Jun 20 19:32:49 2006
-Date: Tue, 20 Jun 2006 22:32:40 -0400
-From: Brice Goglin <brice@myri.com>
-To: linux-pci@atrey.karlin.mff.cuni.cz
-Cc: linux-kernel@vger.kernel.org
-Subject: [PATCH 4/6] MSI: Factorize common MSI detection code from pci_enable_msi() and msix()
-Message-ID: <20060621023239.GD16292@myri.com>
-Content-Disposition: inline
-
-pci_enable_msi() and pci_enable_msix() have to check same things
-before enabling MSI. Factorize this code in pci_msi_supported().
-
-Signed-off-by: Brice Goglin <brice@myri.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-
-
----
- drivers/pci/msi.c | 46 ++++++++++++++++++++++++++--------------------
- 1 file changed, 26 insertions(+), 20 deletions(-)
-
---- gregkh-2.6.orig/drivers/pci/msi.c
-+++ gregkh-2.6/drivers/pci/msi.c
-@@ -901,6 +901,28 @@ static int msix_capability_init(struct p
- }
-
- /**
-+ * pci_msi_supported - check whether MSI may be enabled on device
-+ * @dev: pointer to the pci_dev data structure of MSI device function
-+ *
-+ * Check parent busses for MSI flags, or disable except
-+ * if forced.
-+ **/
-+static
-+int pci_msi_supported(struct pci_dev * dev)
-+{
-+ struct pci_bus *bus;
-+
-+ if (!pci_msi_enable || !dev || dev->no_msi)
-+ return -1;
-+
-+ for (bus = dev->bus; bus; bus = bus->parent)
-+ if (bus->bus_flags & PCI_BUS_FLAGS_NO_MSI)
-+ return -1;
-+
-+ return 0;
-+}
-+
-+/**
- * pci_enable_msi - configure device's MSI capability structure
- * @dev: pointer to the pci_dev data structure of MSI device function
- *
-@@ -912,19 +934,11 @@ static int msix_capability_init(struct p
- **/
- int pci_enable_msi(struct pci_dev* dev)
- {
-- struct pci_bus *bus;
-- int pos, temp, status = -EINVAL;
-+ int pos, temp, status;
- u16 control;
-
-- if (!pci_msi_enable || !dev)
-- return status;
--
-- if (dev->no_msi)
-- return status;
--
-- for (bus = dev->bus; bus; bus = bus->parent)
-- if (bus->bus_flags & PCI_BUS_FLAGS_NO_MSI)
-- return -EINVAL;
-+ if (pci_msi_supported(dev) < 0)
-+ return -EINVAL;
-
- temp = dev->irq;
-
-@@ -1134,22 +1148,14 @@ static int reroute_msix_table(int head,
- **/
- int pci_enable_msix(struct pci_dev* dev, struct msix_entry *entries, int nvec)
- {
-- struct pci_bus *bus;
- int status, pos, nr_entries, free_vectors;
- int i, j, temp;
- u16 control;
- unsigned long flags;
-
-- if (!pci_msi_enable || !dev || !entries)
-+ if (!entries || pci_msi_supported(dev) < 0)
- return -EINVAL;
-
-- if (dev->no_msi)
-- return -EINVAL;
--
-- for (bus = dev->bus; bus; bus = bus->parent)
-- if (bus->bus_flags & PCI_BUS_FLAGS_NO_MSI)
-- return -EINVAL;
--
- status = msi_init();
- if (status < 0)
- return status;
diff --git a/pci/msi-merge-existing-msi-disabling-quirks.patch b/pci/msi-merge-existing-msi-disabling-quirks.patch
deleted file mode 100644
index ce9871d3948a0..0000000000000
--- a/pci/msi-merge-existing-msi-disabling-quirks.patch
+++ /dev/null
@@ -1,72 +0,0 @@
-From owner-linux-pci@atrey.karlin.mff.cuni.cz Tue Jun 20 19:31:56 2006
-Date: Tue, 20 Jun 2006 22:31:42 -0400
-From: Brice Goglin <brice@myri.com>
-To: linux-pci@atrey.karlin.mff.cuni.cz
-Cc: linux-kernel@vger.kernel.org
-Subject: [PATCH 1/6] MSI: Merge existing MSI disabling quirks
-Message-ID: <20060621023141.GA16292@myri.com>
-Content-Disposition: inline
-
-Merge existing MSI disabling quirks into a generic one that we will
-use to blacklist all MSI-broken chipsets.
-By the way, print the bus id of the device.
-
-Signed-off-by: Brice Goglin <brice@myri.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-
----
- drivers/pci/quirks.c | 29 ++++++++++++++++-------------
- 1 file changed, 16 insertions(+), 13 deletions(-)
-
---- gregkh-2.6.orig/drivers/pci/quirks.c
-+++ gregkh-2.6/drivers/pci/quirks.c
-@@ -585,12 +585,6 @@ static void __init quirk_amd_8131_ioapic
- {
- unsigned char revid, tmp;
-
-- if (dev->subordinate) {
-- printk(KERN_WARNING "PCI: MSI quirk detected. "
-- "PCI_BUS_FLAGS_NO_MSI set for subordinate bus.\n");
-- dev->subordinate->bus_flags |= PCI_BUS_FLAGS_NO_MSI;
-- }
--
- if (nr_ioapics == 0)
- return;
-
-@@ -603,13 +597,6 @@ static void __init quirk_amd_8131_ioapic
- }
- }
- DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_8131_BRIDGE, 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 */
-
-
-@@ -1544,6 +1531,22 @@ static void __devinit quirk_nvidia_ck804
- DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_NVIDIA, PCI_DEVICE_ID_NVIDIA_CK804_PCIE,
- quirk_nvidia_ck804_pcie_aer_ext_cap);
-
-+#ifdef CONFIG_PCI_MSI
-+/* Disable MSI on chipsets that are known to not support it */
-+static void __devinit quirk_disable_msi(struct pci_dev *dev)
-+{
-+ if (dev->subordinate) {
-+ printk(KERN_WARNING "PCI: MSI quirk detected. "
-+ "PCI_BUS_FLAGS_NO_MSI set for %s subordinate bus.\n",
-+ pci_name(dev));
-+ dev->subordinate->bus_flags |= PCI_BUS_FLAGS_NO_MSI;
-+ }
-+}
-+DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_8131_BRIDGE, quirk_disable_msi);
-+DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_SERVERWORKS, PCI_DEVICE_ID_SERVERWORKS_GCNB_LE,
-+ quirk_disable_msi);
-+#endif /* CONFIG_PCI_MSI */
-+
- EXPORT_SYMBOL(pcie_mch_quirk);
- #ifdef CONFIG_HOTPLUG
- EXPORT_SYMBOL(pci_fixup_device);
diff --git a/pci/msi-rename-pci_cap_id_ht_irqconf-into-pci_cap_id_ht.patch b/pci/msi-rename-pci_cap_id_ht_irqconf-into-pci_cap_id_ht.patch
deleted file mode 100644
index f44511d3858e3..0000000000000
--- a/pci/msi-rename-pci_cap_id_ht_irqconf-into-pci_cap_id_ht.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From owner-linux-pci@atrey.karlin.mff.cuni.cz Tue Jun 20 19:32:13 2006
-Date: Tue, 20 Jun 2006 22:32:02 -0400
-From: Brice Goglin <brice@myri.com>
-To: linux-pci@atrey.karlin.mff.cuni.cz
-Cc: linux-kernel@vger.kernel.org
-Subject: [PATCH 2/6] MSI: Rename PCI_CAP_ID_HT_IRQCONF into PCI_CAP_ID_HT
-Message-ID: <20060621023201.GB16292@myri.com>
-Content-Disposition: inline
-
-0x08 is the HT capability, while PCI_CAP_ID_HT_IRQCONF would be
-the subtype 0x80 that mpic_scan_ht_pic() uses.
-Rename PCI_CAP_ID_HT_IRQCONF into PCI_CAP_ID_HT.
-
-Signed-off-by: Brice Goglin <brice@myri.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-
----
- arch/powerpc/sysdev/mpic.c | 2 +-
- include/linux/pci_regs.h | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
---- gregkh-2.6.orig/arch/powerpc/sysdev/mpic.c
-+++ gregkh-2.6/arch/powerpc/sysdev/mpic.c
-@@ -249,7 +249,7 @@ static void __init mpic_scan_ht_pic(stru
- for (pos = readb(devbase + PCI_CAPABILITY_LIST); pos != 0;
- pos = readb(devbase + pos + PCI_CAP_LIST_NEXT)) {
- u8 id = readb(devbase + pos + PCI_CAP_LIST_ID);
-- if (id == PCI_CAP_ID_HT_IRQCONF) {
-+ if (id == PCI_CAP_ID_HT) {
- id = readb(devbase + pos + 3);
- if (id == 0x80)
- break;
---- gregkh-2.6.orig/include/linux/pci_regs.h
-+++ gregkh-2.6/include/linux/pci_regs.h
-@@ -196,7 +196,7 @@
- #define PCI_CAP_ID_MSI 0x05 /* Message Signalled Interrupts */
- #define PCI_CAP_ID_CHSWP 0x06 /* CompactPCI HotSwap */
- #define PCI_CAP_ID_PCIX 0x07 /* PCI-X */
--#define PCI_CAP_ID_HT_IRQCONF 0x08 /* HyperTransport IRQ Configuration */
-+#define PCI_CAP_ID_HT 0x08 /* HyperTransport */
- #define PCI_CAP_ID_VNDR 0x09 /* Vendor specific capability */
- #define PCI_CAP_ID_SHPC 0x0C /* PCI Standard Hot-Plug Controller */
- #define PCI_CAP_ID_EXP 0x10 /* PCI Express */
diff --git a/pci/msi-stop-inheriting-bus-flags-and-check-root-chipset-bus-flags-instead.patch b/pci/msi-stop-inheriting-bus-flags-and-check-root-chipset-bus-flags-instead.patch
deleted file mode 100644
index f0c07210e2c97..0000000000000
--- a/pci/msi-stop-inheriting-bus-flags-and-check-root-chipset-bus-flags-instead.patch
+++ /dev/null
@@ -1,70 +0,0 @@
-From owner-linux-pci@atrey.karlin.mff.cuni.cz Tue Jun 20 19:33:00 2006
-Date: Tue, 20 Jun 2006 22:32:54 -0400
-From: Brice Goglin <brice@myri.com>
-To: linux-pci@atrey.karlin.mff.cuni.cz
-Cc: linux-kernel@vger.kernel.org
-Subject: [PATCH 5/6] MSI: Stop inheriting bus flags and check root chipset bus flags instead
-Message-ID: <20060621023253.GE16292@myri.com>
-Content-Disposition: inline
-
-Inheriting bus flags requires to set them during the PCI hierarchy is
-scanned, with EARLY or HEADER quirks. But the subordinate bus has not
-been set at this point, so the bus flags cannot be set.
-
-Signed-off-by: Brice Goglin <brice@myri.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-
----
- drivers/pci/msi.c | 13 +++++++++----
- drivers/pci/probe.c | 2 +-
- include/linux/pci.h | 2 +-
- 3 files changed, 11 insertions(+), 6 deletions(-)
-
---- gregkh-2.6.orig/drivers/pci/msi.c
-+++ gregkh-2.6/drivers/pci/msi.c
-@@ -910,14 +910,19 @@ static int msix_capability_init(struct p
- static
- int pci_msi_supported(struct pci_dev * dev)
- {
-- struct pci_bus *bus;
-+ struct pci_dev *pdev;
-
- if (!pci_msi_enable || !dev || dev->no_msi)
- return -1;
-
-- for (bus = dev->bus; bus; bus = bus->parent)
-- if (bus->bus_flags & PCI_BUS_FLAGS_NO_MSI)
-- return -1;
-+ /* find root complex for our device */
-+ pdev = dev;
-+ while (pdev->bus && pdev->bus->self)
-+ pdev = pdev->bus->self;
-+
-+ /* check its bus flags */
-+ if (pdev->subordinate->bus_flags & PCI_BUS_FLAGS_NO_MSI)
-+ return -1;
-
- return 0;
- }
---- gregkh-2.6.orig/drivers/pci/probe.c
-+++ gregkh-2.6/drivers/pci/probe.c
-@@ -351,7 +351,7 @@ pci_alloc_child_bus(struct pci_bus *pare
- child->parent = parent;
- child->ops = parent->ops;
- child->sysdata = parent->sysdata;
-- child->bus_flags = parent->bus_flags;
-+ child->bus_flags = 0;
- child->bridge = get_device(&bridge->dev);
-
- child->class_dev.class = &pcibus_class;
---- gregkh-2.6.orig/include/linux/pci.h
-+++ gregkh-2.6/include/linux/pci.h
-@@ -241,7 +241,7 @@ struct pci_bus {
- char name[48];
-
- unsigned short bridge_ctl; /* manage NO_ISA/FBB/et al behaviors */
-- pci_bus_flags_t bus_flags; /* Inherited by child busses */
-+ pci_bus_flags_t bus_flags;
- struct device *bridge;
- struct class_device class_dev;
- struct bin_attribute *legacy_io; /* legacy I/O for this bus */