From: john stultz Don't try to support more than NR_CPUS cpus: things overflow. Also, increase the default in config for some architectures. (Dave Hansen). arch/i386/Kconfig | 1 + arch/i386/kernel/mpparse.c | 5 +++++ 2 files changed, 6 insertions(+) diff -puN arch/i386/kernel/mpparse.c~NR_CPUS-overflow-fix arch/i386/kernel/mpparse.c --- 25/arch/i386/kernel/mpparse.c~NR_CPUS-overflow-fix 2003-09-05 00:52:31.000000000 -0700 +++ 25-akpm/arch/i386/kernel/mpparse.c 2003-09-05 01:01:55.000000000 -0700 @@ -167,6 +167,11 @@ void __init MP_processor_info (struct mp boot_cpu_logical_apicid = apicid; } + if (num_processors >= NR_CPUS) { + printk(KERN_WARNING "NR_CPUS limit of %i reached. Cannot " + "boot CPU(apicid 0x%d).\n", NR_CPUS, m->mpc_apicid); + return; + } num_processors++; if (MAX_APICS - m->mpc_apicid <= 0) { diff -puN arch/i386/Kconfig~NR_CPUS-overflow-fix arch/i386/Kconfig --- 25/arch/i386/Kconfig~NR_CPUS-overflow-fix 2003-09-05 00:52:31.000000000 -0700 +++ 25-akpm/arch/i386/Kconfig 2003-09-05 01:00:24.000000000 -0700 @@ -454,6 +454,7 @@ config SMP config NR_CPUS int "Maximum number of CPUs (2-255)" depends on SMP + default "32" if X86_NUMAQ || X86_SUMMIT || X86_BIGSMP || X86_ES7000 default "8" help This allows you to specify the maximum number of CPUs which this _