diff --git a/arch/mips/kernel/smp.c b/arch/mips/kernel/smp.c
index 48650c8180401aeb1ce1c3f2713471d9c6e45536..b181bbf410de3c9f906380d5cc2c2ead5c6bcb36 100644
--- a/arch/mips/kernel/smp.c
+++ b/arch/mips/kernel/smp.c
@@ -122,13 +122,14 @@ asmlinkage __cpuinit void start_secondary(void)
 
 	notify_cpu_starting(cpu);
 
-	mp_ops->smp_finish();
 	set_cpu_sibling_map(cpu);
 
 	cpu_set(cpu, cpu_callin_map);
 
 	synchronise_count_slave();
 
+	mp_ops->smp_finish();
+
 	cpu_idle();
 }