From: john stultz <johnstul@us.ibm.com>

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

_