aboutsummaryrefslogtreecommitdiffstats
path: root/arch/powerpc/kernel/smp.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/powerpc/kernel/smp.c')
-rw-r--r--arch/powerpc/kernel/smp.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/arch/powerpc/kernel/smp.c b/arch/powerpc/kernel/smp.c
index a0738af4aba6..71e186d5f331 100644
--- a/arch/powerpc/kernel/smp.c
+++ b/arch/powerpc/kernel/smp.c
@@ -52,6 +52,7 @@
52#endif 52#endif
53#include <asm/vdso.h> 53#include <asm/vdso.h>
54#include <asm/debug.h> 54#include <asm/debug.h>
55#include <asm/kexec.h>
55 56
56#ifdef DEBUG 57#ifdef DEBUG
57#include <asm/udbg.h> 58#include <asm/udbg.h>
@@ -379,8 +380,11 @@ void __init smp_prepare_cpus(unsigned int max_cpus)
379 /* 380 /*
380 * numa_node_id() works after this. 381 * numa_node_id() works after this.
381 */ 382 */
382 set_cpu_numa_node(cpu, numa_cpu_lookup_table[cpu]); 383 if (cpu_present(cpu)) {
383 set_cpu_numa_mem(cpu, local_memory_node(numa_cpu_lookup_table[cpu])); 384 set_cpu_numa_node(cpu, numa_cpu_lookup_table[cpu]);
385 set_cpu_numa_mem(cpu,
386 local_memory_node(numa_cpu_lookup_table[cpu]));
387 }
384 } 388 }
385 389
386 cpumask_set_cpu(boot_cpuid, cpu_sibling_mask(boot_cpuid)); 390 cpumask_set_cpu(boot_cpuid, cpu_sibling_mask(boot_cpuid));
@@ -728,6 +732,9 @@ void start_secondary(void *unused)
728 } 732 }
729 traverse_core_siblings(cpu, true); 733 traverse_core_siblings(cpu, true);
730 734
735 set_numa_node(numa_cpu_lookup_table[cpu]);
736 set_numa_mem(local_memory_node(numa_cpu_lookup_table[cpu]));
737
731 smp_wmb(); 738 smp_wmb();
732 notify_cpu_starting(cpu); 739 notify_cpu_starting(cpu);
733 set_cpu_online(cpu, true); 740 set_cpu_online(cpu, true);