Drop excess IO-APIC's on the floor and don't scan node > 0 buses on NUMA-Q, since my box has bridges on differing segments and that doesn't work. kernel/mpparse.c | 1 + pci/numa.c | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff -urpN wli-2.5.50-bk6-9/arch/i386/kernel/mpparse.c wli-2.5.50-bk6-10/arch/i386/kernel/mpparse.c --- wli-2.5.50-bk6-9/arch/i386/kernel/mpparse.c 2002-12-02 21:04:49.000000000 -0800 +++ wli-2.5.50-bk6-10/arch/i386/kernel/mpparse.c 2002-12-06 13:59:59.000000000 -0800 @@ -473,6 +473,7 @@ static int __init smp_read_mpc(struct mp } ++mpc_record; } + nr_ioapics = 2; clustered_apic_check(); if (!num_processors) printk(KERN_ERR "SMP mptable: no processors registered!\n"); diff -urpN wli-2.5.50-bk6-9/arch/i386/pci/numa.c wli-2.5.50-bk6-10/arch/i386/pci/numa.c --- wli-2.5.50-bk6-9/arch/i386/pci/numa.c 2002-11-27 14:35:51.000000000 -0800 +++ wli-2.5.50-bk6-10/arch/i386/pci/numa.c 2002-12-06 13:59:59.000000000 -0800 @@ -127,7 +127,7 @@ static int __init pci_numa_init(void) return 0; pci_root_bus = pcibios_scan_root(0); - if (clustered_apic_mode && (numnodes > 1)) { + if (0 && clustered_apic_mode && (numnodes > 1)) { for (quad = 1; quad < numnodes; ++quad) { printk("Scanning PCI bus %d for quad %d\n", QUADLOCAL2BUS(quad,0), quad);