]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
add a pci bugfix to get a whole class of machines working that previously died a...
authorGreg Kroah-Hartman <gregkh@suse.de>
Thu, 1 Jun 2006 00:15:35 +0000 (17:15 -0700)
committerGreg Kroah-Hartman <gregkh@suse.de>
Thu, 1 Jun 2006 00:15:35 +0000 (17:15 -0700)
queue-2.6.16/series
queue-2.6.16/x86_64-Don-t-sanity-check-Type-1-PCI-bus-access-on-newer-systems.patch [new file with mode: 0644]

index e4b873823b756b7fb790f8bfec0254a4c9a7b35d..545b09455ebcf15e80daa1dbc48b63fff933ff5e 100644 (file)
@@ -7,3 +7,4 @@ ohci1394-sbp2-fix-scsi_add_device-failed-with-pl-3507-based-devices.patch
 the-latest-consensus-libata-resume-fix.patch
 ipw2200-Filter-unsupported-channels-out-in-ad-hoc-mode.patch
 x86_64-add-crashdump-trigger-points.patch
+x86_64-Don-t-sanity-check-Type-1-PCI-bus-access-on-newer-systems.patch
diff --git a/queue-2.6.16/x86_64-Don-t-sanity-check-Type-1-PCI-bus-access-on-newer-systems.patch b/queue-2.6.16/x86_64-Don-t-sanity-check-Type-1-PCI-bus-access-on-newer-systems.patch
new file mode 100644 (file)
index 0000000..ace226f
--- /dev/null
@@ -0,0 +1,40 @@
+From nobody Mon Sep 17 00:00:00 2001
+From: Andi Kleen <ak@suse.de>
+Date: Fri, 7 Apr 2006 19:49:36 +0200
+Subject: [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: Navin Boppuri <navin.boppuri@newisys.com>
+Signed-off-by: Andi Kleen <ak@suse.de>
+Signed-off-by: Linus Torvalds <torvalds@osdl.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ arch/i386/pci/direct.c |    5 +++++
+ 1 file changed, 5 insertions(+)
+
+--- linux-2.6.16.19.orig/arch/i386/pci/direct.c
++++ linux-2.6.16.19/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(struc
+       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))