diff -Naurp linux-2.6.0-test3-bk8/arch/i386/kernel/mpparse.c linux-2.6.0-test3-bk8-patch/arch/i386/kernel/mpparse.c --- linux-2.6.0-test3-bk8/arch/i386/kernel/mpparse.c 2003-08-21 10:42:38.000000000 -0500 +++ linux-2.6.0-test3-bk8-patch/arch/i386/kernel/mpparse.c 2003-08-21 10:36:26.000000000 -0500 @@ -68,7 +68,7 @@ unsigned long mp_lapic_addr; unsigned int boot_cpu_physical_apicid = -1U; unsigned int boot_cpu_logical_apicid = -1U; /* Internal processor count */ -static unsigned int __initdata num_processors; +unsigned int __initdata num_processors; /* Bitmask of physically existing CPUs */ physid_mask_t phys_cpu_present_map; diff -Naurp linux-2.6.0-test3-bk8/arch/i386/kernel/smpboot.c linux-2.6.0-test3-bk8-patch/arch/i386/kernel/smpboot.c --- linux-2.6.0-test3-bk8/arch/i386/kernel/smpboot.c 2003-08-21 10:42:38.000000000 -0500 +++ linux-2.6.0-test3-bk8-patch/arch/i386/kernel/smpboot.c 2003-08-21 10:36:26.000000000 -0500 @@ -64,6 +64,8 @@ int phys_proc_id[NR_CPUS]; /* Package ID /* bitmap of online cpus */ cpumask_t cpu_online_map; +extern unsigned int num_processors; + static cpumask_t cpu_callin_map; cpumask_t cpu_callout_map; static cpumask_t smp_commenced_mask; @@ -1020,7 +1022,7 @@ static void __init smp_boot_cpus(unsigne Dprintk("CPU present map: %lx\n", physids_coerce(phys_cpu_present_map)); kicked = 1; - for (bit = 0; kicked < NR_CPUS && bit < MAX_APICS; bit++) { + for (bit = 0; kicked < num_processors && bit < MAX_APICS; bit++) { apicid = cpu_present_to_apicid(bit); /* * Don't even attempt to start the boot CPU!