This is a workaround for NUMA-Q's PCI code mishandling PCI-PCI bridges off node 0. diff -urpN wli-2.5.51-bk1-1/arch/i386/kernel/mpparse.c wli-2.5.51-bk1-2/arch/i386/kernel/mpparse.c --- wli-2.5.51-bk1-1/arch/i386/kernel/mpparse.c 2002-12-09 18:45:53.000000000 -0800 +++ wli-2.5.51-bk1-2/arch/i386/kernel/mpparse.c 2002-12-11 18:27:01.000000000 -0800 @@ -473,6 +473,8 @@ static int __init smp_read_mpc(struct mp } ++mpc_record; } + if (clustered_apic_mode) + nr_ioapics = min(2, nr_ioapics); clustered_apic_check(); if (!num_processors) printk(KERN_ERR "SMP mptable: no processors registered!\n"); diff -urpN wli-2.5.51-bk1-1/arch/i386/pci/numa.c wli-2.5.51-bk1-2/arch/i386/pci/numa.c --- wli-2.5.51-bk1-1/arch/i386/pci/numa.c 2002-12-09 18:45:48.000000000 -0800 +++ wli-2.5.51-bk1-2/arch/i386/pci/numa.c 2002-12-11 18:26:04.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);