|
@@ -32,6 +32,7 @@
|
|
|
|
|
|
/* Have we found an MP table */
|
|
/* Have we found an MP table */
|
|
int smp_found_config;
|
|
int smp_found_config;
|
|
|
|
+unsigned int __cpuinitdata maxcpus = NR_CPUS;
|
|
|
|
|
|
/*
|
|
/*
|
|
* Various Linux-internal data structures created from the
|
|
* Various Linux-internal data structures created from the
|
|
@@ -115,6 +116,12 @@ static void __cpuinit MP_processor_info(struct mpc_config_processor *m)
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ if (num_processors >= maxcpus) {
|
|
|
|
+ printk(KERN_WARNING "WARNING: maxcpus limit of %i reached."
|
|
|
|
+ " Processor ignored.\n", maxcpus);
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
|
|
+
|
|
num_processors++;
|
|
num_processors++;
|
|
cpus_complement(tmp_map, cpu_present_map);
|
|
cpus_complement(tmp_map, cpu_present_map);
|
|
cpu = first_cpu(tmp_map);
|
|
cpu = first_cpu(tmp_map);
|