diff options
author | Greg Kroah-Hartman <gregkh@suse.de> | 2006-07-03 11:11:11 -0700 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2006-07-03 11:11:11 -0700 |
commit | bbc466d1931e2ca1f095824f455833944d9a35ae (patch) | |
tree | 193544144770e17a7cb5a0f9b45a8ed6402180e9 | |
parent | edebd83392a7b67e4b4aa1a3d387f0593d07f053 (diff) | |
download | patches-bbc466d1931e2ca1f095824f455833944d9a35ae.tar.gz |
move usbip patches and remove MSI ones.
-rw-r--r-- | bad/usbip/usb-usbip-build-fix.patch (renamed from usb/usb-usbip-build-fix.patch) | 0 | ||||
-rw-r--r-- | bad/usbip/usb-usbip-more-dead-code-fix.patch (renamed from usb/usb-usbip-more-dead-code-fix.patch) | 0 | ||||
-rw-r--r-- | bad/usbip/usb-usbip-warning-fixes.patch (renamed from usb/usb-usbip-warning-fixes.patch) | 0 | ||||
-rw-r--r-- | bad/usbip/usbip.patch (renamed from usb/usbip.patch) | 0 | ||||
-rw-r--r-- | pci/msi-blacklist-pci-e-chipsets-depending-on-hypertransport-msi-capabality.patch | 102 | ||||
-rw-r--r-- | pci/msi-drop-pci_msi_quirk.patch | 63 | ||||
-rw-r--r-- | pci/msi-factorize-common-msi-detection-code-from-pci_enable_msi-and-msix.patch | 98 | ||||
-rw-r--r-- | pci/msi-merge-existing-msi-disabling-quirks.patch | 72 | ||||
-rw-r--r-- | pci/msi-rename-pci_cap_id_ht_irqconf-into-pci_cap_id_ht.patch | 43 | ||||
-rw-r--r-- | pci/msi-stop-inheriting-bus-flags-and-check-root-chipset-bus-flags-instead.patch | 70 | ||||
-rw-r--r-- | series | 11 |
11 files changed, 0 insertions, 459 deletions
diff --git a/usb/usb-usbip-build-fix.patch b/bad/usbip/usb-usbip-build-fix.patch index 4ff26199efae7..4ff26199efae7 100644 --- a/usb/usb-usbip-build-fix.patch +++ b/bad/usbip/usb-usbip-build-fix.patch diff --git a/usb/usb-usbip-more-dead-code-fix.patch b/bad/usbip/usb-usbip-more-dead-code-fix.patch index f1ff1eb5705b3..f1ff1eb5705b3 100644 --- a/usb/usb-usbip-more-dead-code-fix.patch +++ b/bad/usbip/usb-usbip-more-dead-code-fix.patch diff --git a/usb/usb-usbip-warning-fixes.patch b/bad/usbip/usb-usbip-warning-fixes.patch index e6cf05290d8ca..e6cf05290d8ca 100644 --- a/usb/usb-usbip-warning-fixes.patch +++ b/bad/usbip/usb-usbip-warning-fixes.patch diff --git a/usb/usbip.patch b/bad/usbip/usbip.patch index 78da15bd294dc..78da15bd294dc 100644 --- a/usb/usbip.patch +++ b/bad/usbip/usbip.patch 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 */ @@ -40,12 +40,6 @@ pci/pci-poper-prototype-for-arch-i386-pci-pcbios.c-pcibios_sort.patch pci/pci-clear-abnormal-poweroff-flag-on-via-southbridges-fix-resume.patch # pci patches for after 2.6.18 is out -pci/msi-merge-existing-msi-disabling-quirks.patch -pci/msi-rename-pci_cap_id_ht_irqconf-into-pci_cap_id_ht.patch -pci/msi-blacklist-pci-e-chipsets-depending-on-hypertransport-msi-capabality.patch -pci/msi-factorize-common-msi-detection-code-from-pci_enable_msi-and-msix.patch -pci/msi-stop-inheriting-bus-flags-and-check-root-chipset-bus-flags-instead.patch -pci/msi-drop-pci_msi_quirk.patch pci/resources-insert-identical-resources-above-existing-resources.patch # do not merge, for testing only @@ -99,11 +93,6 @@ usb/usb-allow-compile-in-g_ether-fix-typo.patch # broken :( usb/usb-serial-dynamic-id.patch -# needs lots of work before going to mainline -usb/usbip.patch -usb/usb-usbip-build-fix.patch -usb/usb-usbip-more-dead-code-fix.patch -usb/usb-usbip-warning-fixes.patch # my ols tutorial driver, never in mainline usb/usb-gotemp.patch |