[PATCH] powerpc: Make UP -> SMP kexec work again
authorMichael Ellerman <michael@ellerman.id.au>
Thu, 16 Feb 2006 03:13:51 +0000 (14:13 +1100)
committerPaul Mackerras <paulus@samba.org>
Mon, 20 Feb 2006 01:03:36 +0000 (12:03 +1100)
For UP to SMP kexec to work we need to jump into pSeries_secondary_smp_init
event on a UP + KEXEC kernel. The secondary cpus will not find their hw_cpu_id
in the paca and so they'll jump into kexec_wait, ready for a kexec.

Signed-off-by: Michael Ellerman <michael@ellerman.id.au>
Signed-off-by: Paul Mackerras <paulus@samba.org>
arch/powerpc/kernel/head_64.S

index 41565962939473dd96d5b4404dfdaca456cbd69f..2b03a09fe5e9d5022fae5c99d11b5710eee92f13 100644 (file)
@@ -157,8 +157,7 @@ _GLOBAL(__secondary_hold)
        SET_REG_IMMEDIATE(r4, .hmt_init)
        mtctr   r4
        bctr
-#else
-#ifdef CONFIG_SMP
+#elif defined(CONFIG_SMP) || defined(CONFIG_KEXEC)
        LOAD_REG_IMMEDIATE(r4, .pSeries_secondary_smp_init)
        mtctr   r4
        mr      r3,r24
@@ -166,7 +165,6 @@ _GLOBAL(__secondary_hold)
 #else
        BUG_OPCODE
 #endif
-#endif
 
 /* This value is used to mark exception frames on the stack. */
        .section ".toc","aw"