public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH stable] x86 PCI: call dmi_check_pciprobe()
@ 2008-05-06  2:59 Matt Domsch
  0 siblings, 0 replies; only message in thread
From: Matt Domsch @ 2008-05-06  2:59 UTC (permalink / raw)
  To: stable
  Cc: Yinghai Lu, Ingo Molnar, Thomas Gleixner, Jesse Barnes,
	linux-kernel, Michal Schmidt, davej, Andy Gospodarek, john.cagle,
	Greg KH

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@gmail.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@il.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@gmail.com>
    Signed-off-by: Ingo Molnar <mingo@elte.hu>
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>


Signed-off-by: Matt Domsch <Matt_Domsch@dell.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;

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2008-05-06  3:00 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-05-06  2:59 [PATCH stable] x86 PCI: call dmi_check_pciprobe() Matt Domsch

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox