aboutsummaryrefslogtreecommitdiffstats
path: root/arch/sparc64/kernel/smp.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/sparc64/kernel/smp.c')
-rw-r--r--arch/sparc64/kernel/smp.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/arch/sparc64/kernel/smp.c b/arch/sparc64/kernel/smp.c
index 1cbc02aa27dd4..6550d981b450c 100644
--- a/arch/sparc64/kernel/smp.c
+++ b/arch/sparc64/kernel/smp.c
@@ -107,6 +107,10 @@ void __init smp_callin(void)
__flush_tlb_all();
+ __asm__ __volatile__("mov %0, %%g5\n\t"
+ : /* no outputs */
+ : "r" (__per_cpu_offset[cpuid]));
+
smp_setup_percpu_timer();
local_irq_enable();
@@ -1115,6 +1119,11 @@ void __devinit smp_prepare_boot_cpu(void)
}
current_thread_info()->cpu = hard_smp_processor_id();
+
+ __asm__ __volatile__("mov %0, %%g5\n\t"
+ : /* no outputs */
+ : "r" (__per_cpu_offset[smp_processor_id()]));
+
cpu_set(smp_processor_id(), cpu_online_map);
cpu_set(smp_processor_id(), phys_cpu_present_map);
}