From: Nathan Lynch Date: Tue, 21 Mar 2006 00:34:15 +0000 (-0600) Subject: [PATCH] powerpc numa: fix boot_cpuid always assigned to node 0 X-Git-Tag: v2.6.17-rc1~1117^2~26 X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c08888cf3c80fe07bfd176113c390ca31d3ba5c2;p=linux-2.6 [PATCH] powerpc numa: fix boot_cpuid always assigned to node 0 At boot, the numa code is assigning boot_cpuid to node 0 unconditionally. Basically, numa_setup_cpu is being stupid about it, but this is the minimal fix -- just call numa_setup_cpu(boot_cpuid) later, after all nodes have been set online. Signed-off-by: Nathan Lynch Signed-off-by: Paul Mackerras --- diff --git a/arch/powerpc/mm/numa.c b/arch/powerpc/mm/numa.c index da5280f8cf..dc6392ce25 100644 --- a/arch/powerpc/mm/numa.c +++ b/arch/powerpc/mm/numa.c @@ -375,7 +375,7 @@ static int __init parse_numa_properties(void) { struct device_node *cpu = NULL; struct device_node *memory = NULL; - int max_domain; + int max_domain = 0; unsigned long i; if (numa_enabled == 0) { @@ -389,8 +389,6 @@ static int __init parse_numa_properties(void) if (min_common_depth < 0) return min_common_depth; - max_domain = numa_setup_cpu(boot_cpuid); - /* * Even though we connect cpus to numa domains later in SMP init, * we need to know the maximum node id now. This is because each @@ -469,6 +467,8 @@ new_range: for (i = 0; i <= max_domain; i++) node_set_online(i); + max_domain = numa_setup_cpu(boot_cpuid); + return 0; }