diff options
author | Nathan Lynch <nathanl@austin.ibm.com> | 2006-03-20 19:34:15 -0500 |
---|---|---|
committer | Paul Mackerras <paulus@samba.org> | 2006-03-21 23:03:40 -0500 |
commit | c08888cf3c80fe07bfd176113c390ca31d3ba5c2 (patch) | |
tree | 37d6ef3a46dca009c997e337874a194551bd4fcd /arch | |
parent | 1d7aac5b3bce34c8b5fcec8ca577a4d3af880fd3 (diff) |
[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 <nathanl@austin.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/powerpc/mm/numa.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/arch/powerpc/mm/numa.c b/arch/powerpc/mm/numa.c index da5280f8cf42..dc6392ce2530 100644 --- a/arch/powerpc/mm/numa.c +++ b/arch/powerpc/mm/numa.c | |||
@@ -375,7 +375,7 @@ static int __init parse_numa_properties(void) | |||
375 | { | 375 | { |
376 | struct device_node *cpu = NULL; | 376 | struct device_node *cpu = NULL; |
377 | struct device_node *memory = NULL; | 377 | struct device_node *memory = NULL; |
378 | int max_domain; | 378 | int max_domain = 0; |
379 | unsigned long i; | 379 | unsigned long i; |
380 | 380 | ||
381 | if (numa_enabled == 0) { | 381 | if (numa_enabled == 0) { |
@@ -389,8 +389,6 @@ static int __init parse_numa_properties(void) | |||
389 | if (min_common_depth < 0) | 389 | if (min_common_depth < 0) |
390 | return min_common_depth; | 390 | return min_common_depth; |
391 | 391 | ||
392 | max_domain = numa_setup_cpu(boot_cpuid); | ||
393 | |||
394 | /* | 392 | /* |
395 | * Even though we connect cpus to numa domains later in SMP init, | 393 | * Even though we connect cpus to numa domains later in SMP init, |
396 | * we need to know the maximum node id now. This is because each | 394 | * we need to know the maximum node id now. This is because each |
@@ -469,6 +467,8 @@ new_range: | |||
469 | for (i = 0; i <= max_domain; i++) | 467 | for (i = 0; i <= max_domain; i++) |
470 | node_set_online(i); | 468 | node_set_online(i); |
471 | 469 | ||
470 | max_domain = numa_setup_cpu(boot_cpuid); | ||
471 | |||
472 | return 0; | 472 | return 0; |
473 | } | 473 | } |
474 | 474 | ||