[<prev] [next>] [day] [month] [year] [list]
Message-ID: <20080506025958.GA26913@auslistsprd01.us.dell.com>
Date: Mon, 5 May 2008 21:59:58 -0500
From: Matt Domsch <Matt_Domsch@...l.com>
To: stable@...nel.org
Cc: Yinghai Lu <yhlu.kernel@...il.com>, Ingo Molnar <mingo@...e.hu>,
Thomas Gleixner <tglx@...utronix.de>,
Jesse Barnes <jbarnes@...tuousgeek.org>,
linux-kernel@...r.kernel.org, Michal Schmidt <mschmidt@...hat.com>,
davej@...hat.com, Andy Gospodarek <andy@...yhouse.net>,
john.cagle@...com, Greg KH <greg@...ah.com>
Subject: [PATCH stable] x86 PCI: call dmi_check_pciprobe()
This is a backport of the noted commit which is in 2.6.26-rc1
now. This is necessary to enable pci=bfsort automatically on a number
of Dell and HP servers, as well as pci=assign-busses for a few other
systems, which was broken between 2.6.22 and 2.6.23.
commit 0df18ff366853cdf31e5238764ec5c63e6b5a398
Author: Yinghai Lu <yhlu.kernel@...il.com>
Date: Mon Apr 14 15:40:37 2008 -0700
x86 PCI: call dmi_check_pciprobe()
this change:
| commit 08f1c192c3c32797068bfe97738babb3295bbf42
| Author: Muli Ben-Yehuda <muli@...ibm.com>
| Date: Sun Jul 22 00:23:39 2007 +0300
|
| x86-64: introduce struct pci_sysdata to facilitate sharing of ->sysdata
|
| This patch introduces struct pci_sysdata to x86 and x86-64, and
| converts the existing two users (NUMA, Calgary) to use it.
|
| This lays the groundwork for having other users of sysdata, such as
| the PCI domains work.
|
| The Calgary bits are tested, the NUMA bits just look ok.
replaces pcibios_scan_root with pci_scan_bus_parented...
but in pcibios_scan_root we have a DMI check:
dmi_check_system(pciprobe_dmi_table);
when when have several peer root buses this could be called multiple
times (which is bad), so move that call to pci_access_init().
Signed-off-by: Yinghai Lu <yhlu.kernel@...il.com>
Signed-off-by: Ingo Molnar <mingo@...e.hu>
Signed-off-by: Thomas Gleixner <tglx@...utronix.de>
Signed-off-by: Jesse Barnes <jbarnes@...tuousgeek.org>
Signed-off-by: Matt Domsch <Matt_Domsch@...l.com>
--
Matt Domsch
Linux Technology Strategist, Dell Office of the CTO
linux.dell.com & www.dell.com/linux
diff -urNp --exclude-from=/home/mdomsch/excludes --minimal linux-2.6.25.1.orig/arch/x86/pci/common.c linux-2.6.25.1/arch/x86/pci/common.c
--- linux-2.6.25.1.orig/arch/x86/pci/common.c 2008-05-01 16:45:25.000000000 -0500
+++ linux-2.6.25.1/arch/x86/pci/common.c 2008-05-05 20:49:52.000000000 -0500
@@ -372,13 +372,16 @@ static struct dmi_system_id __devinitdat
{}
};
+void __init dmi_check_pciprobe(void)
+{
+ dmi_check_system(pciprobe_dmi_table);
+}
+
struct pci_bus * __devinit pcibios_scan_root(int busnum)
{
struct pci_bus *bus = NULL;
struct pci_sysdata *sd;
- dmi_check_system(pciprobe_dmi_table);
-
while ((bus = pci_find_next_bus(bus)) != NULL) {
if (bus->number == busnum) {
/* Already scanned */
diff -urNp --exclude-from=/home/mdomsch/excludes --minimal linux-2.6.25.1.orig/arch/x86/pci/init.c linux-2.6.25.1/arch/x86/pci/init.c
--- linux-2.6.25.1.orig/arch/x86/pci/init.c 2008-05-01 16:45:25.000000000 -0500
+++ linux-2.6.25.1/arch/x86/pci/init.c 2008-05-05 20:51:02.000000000 -0500
@@ -32,6 +32,8 @@ static __init int pci_access_init(void)
printk(KERN_ERR
"PCI: Fatal: No config space access function found\n");
+ dmi_check_pciprobe();
+
return 0;
}
arch_initcall(pci_access_init);
diff -urNp --exclude-from=/home/mdomsch/excludes --minimal linux-2.6.25.1.orig/arch/x86/pci/pci.h linux-2.6.25.1/arch/x86/pci/pci.h
--- linux-2.6.25.1.orig/arch/x86/pci/pci.h 2008-05-01 16:45:25.000000000 -0500
+++ linux-2.6.25.1/arch/x86/pci/pci.h 2008-05-05 20:50:29.000000000 -0500
@@ -39,6 +39,8 @@ enum pci_bf_sort_state {
pci_dmi_bf,
};
+extern void __init dmi_check_pciprobe(void);
+
/* pci-i386.c */
extern unsigned int pcibios_max_latency;
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists