Re: [PATCH] Fix per-cpu allocation on oldworld SMP powermacs
From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Date: 2007-06-07 22:26:08
On Thu, 2007-06-07 at 22:42 +1000, Paul Mackerras wrote:
quoted hunk ↗ jump to hunk
diff --git a/arch/powerpc/platforms/powermac/setup.cb/arch/powerpc/platforms/powermac/setup.c index 07b1c4e..c519b2a 100644--- a/arch/powerpc/platforms/powermac/setup.c +++ b/arch/powerpc/platforms/powermac/setup.c@@ -363,8 +363,19 @@ static void __init pmac_setup_arch(void) smp_ops = &core99_smp_ops; } #ifdef CONFIG_PPC32 - else + else { + /* + * We have to set bits in cpu_possible_map here sincethe + * secondary CPU(s) aren't in the device tree, and + * setup_per_cpu_areas only allocates per-cpu data for + * CPUs in the cpu_possible_map. + */ + int cpu; + + for (cpu = 1; cpu < 4 && cpu < NR_CPUS; ++cpu) + cpu_set(cpu, cpu_possible_map); smp_ops = &psurge_smp_ops; + } #endif #endif /* CONFIG_SMP */
Why not use the result from probe() instead which returns the number of possible CPUs ? That would catch more than just the powermac case ... we might have similar issues when finally porting PReP over... Ben.