1 diff -urNp linux-850/arch/i386/kernel/dmi_scan.c linux-860/arch/i386/kernel/dmi_scan.c
2 --- linux-850/arch/i386/kernel/dmi_scan.c
3 +++ linux-860/arch/i386/kernel/dmi_scan.c
5 #include <asm/system.h>
6 #include <linux/bootmem.h>
10 unsigned long dmi_broken;
11 int is_sony_vaio_laptop;
13 @@ -447,6 +449,8 @@ static __init int swab_apm_power_in_minu
16 extern int skip_ioapic_setup;
17 +extern int broken_440gx_bios;
18 +extern unsigned int pci_probe;
19 static __init int broken_pirq(struct dmi_blacklist *d)
21 printk(KERN_ERR " *** Possibly defective BIOS detected (irqtable)\n");
22 @@ -457,6 +461,9 @@ static __init int broken_pirq(struct dmi
23 #ifdef CONFIG_X86_IO_APIC
24 skip_ioapic_setup = 0;
26 + broken_440gx_bios = 1;
27 + pci_probe |= PCI_BIOS_IRQ_SCAN;
32 diff -urNp linux-850/arch/i386/kernel/pci-irq.c linux-860/arch/i386/kernel/pci-irq.c
33 --- linux-850/arch/i386/kernel/pci-irq.c
34 +++ linux-860/arch/i386/kernel/pci-irq.c
36 #define PIRQ_VERSION 0x0100
38 int broken_hp_bios_irq9;
39 +int broken_440gx_bios;
41 static struct irq_routing_table *pirq_table;
43 @@ -681,7 +682,10 @@ static int pcibios_lookup_irq(struct pci
44 void __init pcibios_irq_init(void)
46 DBG("PCI: IRQ init\n");
47 - pirq_table = pirq_find_routing_table();
48 + if (broken_440gx_bios)
51 + pirq_table = pirq_find_routing_table();
52 #ifdef CONFIG_PCI_BIOS
53 if (!pirq_table && (pci_probe & PCI_BIOS_IRQ_SCAN))
54 pirq_table = pcibios_get_irq_routing_table();