summaryrefslogtreecommitdiffstats
path: root/arch/parisc/kernel/processor.c
diff options
context:
space:
mode:
authorKyle McMartin <kyle@mcmartin.ca>2007-10-18 00:03:50 -0700
committerKyle McMartin <kyle@shortfin.cabal.ca>2007-10-18 00:58:57 -0700
commitf8b9e5945738d25c04d6735c2a070f574d2b34c5 (patch)
treecf3f801695d1a90c89fe475904b3bc23d4ab0bad /arch/parisc/kernel/processor.c
parent730e844d57693f464c7f9954a0f7102414164c3f (diff)
downloadlinux-f8b9e5945738d25c04d6735c2a070f574d2b34c5.tar.gz
linux-f8b9e5945738d25c04d6735c2a070f574d2b34c5.tar.bz2
linux-f8b9e5945738d25c04d6735c2a070f574d2b34c5.zip
[PARISC] Unbreak processor_probe when we have more than NR_CPUS
If we already have NR_CPUS worth of cpus online, we obviously shouldn't be trying to bring up more... Fixes a particularly vexing issue I had when running another machines kernel on my rp3440. Signed-off-by: Kyle McMartin <kyle@mcmartin.ca>
Diffstat (limited to 'arch/parisc/kernel/processor.c')
-rw-r--r--arch/parisc/kernel/processor.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/arch/parisc/kernel/processor.c b/arch/parisc/kernel/processor.c
index 549f5484342c..370086fb8333 100644
--- a/arch/parisc/kernel/processor.c
+++ b/arch/parisc/kernel/processor.c
@@ -82,7 +82,12 @@ static int __cpuinit processor_probe(struct parisc_device *dev)
unsigned long cpuid;
struct cpuinfo_parisc *p;
-#ifndef CONFIG_SMP
+#ifdef CONFIG_SMP
+ if (num_online_cpus() >= NR_CPUS) {
+ printk(KERN_INFO "num_online_cpus() >= NR_CPUS\n");
+ return 1;
+ }
+#else
if (boot_cpu_data.cpu_count > 0) {
printk(KERN_INFO "CONFIG_SMP=n ignoring additional CPUs\n");
return 1;