[PATCH] Fix per-cpu allocation on oldworld SMP powermacs
Benjamin Herrenschmidt
benh at kernel.crashing.org
Fri Jun 8 08:26:02 EST 2007
On Thu, 2007-06-07 at 22:42 +1000, Paul Mackerras wrote:
> diff --git a/arch/powerpc/platforms/powermac/setup.c
> b/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 since
> the
> + * 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.
More information about the Linuxppc-dev
mailing list