Selaa lähdekoodia

[PATCH] x86_64: Don't sanity check Type 1 PCI bus access on newer systems

Horus systems don't have anything on bus 0 which makes
the Type 1 sanity checks fail.  Use the DMI BIOS year to
check for newer systems and always assume Type 1 works on them.
I used 2001 as an pretty arbitary cutoff year.

Cc: gregkh@suse.de
Cc: Navin Boppuri <navin.boppuri@newisys.com>
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Andi Kleen 19 vuotta sitten
vanhempi
commit
ec0f08eeea
1 muutettua tiedostoa jossa 5 lisäystä ja 0 poistoa
  1. 5 0
      arch/i386/pci/direct.c

+ 5 - 0
arch/i386/pci/direct.c

@@ -4,6 +4,7 @@
 
 #include <linux/pci.h>
 #include <linux/init.h>
+#include <linux/dmi.h>
 #include "pci.h"
 
 /*
@@ -188,6 +189,10 @@ static int __init pci_sanity_check(struct pci_raw_ops *o)
 
 	if (pci_probe & PCI_NO_CHECKS)
 		return 1;
+	/* Assume Type 1 works for newer systems.
+	   This handles machines that don't have anything on PCI Bus 0. */
+	if (dmi_get_year(DMI_BIOS_DATE) >= 2001)
+		return 1;
 
 	for (devfn = 0; devfn < 0x100; devfn++) {
 		if (o->read(0, 0, devfn, PCI_CLASS_DEVICE, 2, &x))