[PARISC] Unbreak processor_probe when we have more than NR_CPUS
authorKyle McMartin <kyle@mcmartin.ca>
Thu, 18 Oct 2007 07:03:50 +0000 (00:03 -0700)
committerKyle McMartin <kyle@shortfin.cabal.ca>
Thu, 18 Oct 2007 07:58:57 +0000 (00:58 -0700)
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>
arch/parisc/kernel/processor.c

index 549f5484342c7d6e812edd457bf2c2475ec93fa1..370086fb8333a8a1b5b6f9fdb17418759dc9e064 100644 (file)
@@ -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;