summaryrefslogtreecommitdiffstats
path: root/arch/powerpc
diff options
context:
space:
mode:
authorMichael Ellerman <michael@ellerman.id.au>2006-02-16 14:13:51 +1100
committerPaul Mackerras <paulus@samba.org>2006-02-20 12:03:36 +1100
commit8fca92705ef462f39e7db5a0f7100bcaae91bfd3 (patch)
treee9b4db50bb523b869616bcb5dcea763b34069f42 /arch/powerpc
parentf018b36f3e1f21318066de8d01740d30e38b03d5 (diff)
downloadblackbird-op-linux-8fca92705ef462f39e7db5a0f7100bcaae91bfd3.tar.gz
blackbird-op-linux-8fca92705ef462f39e7db5a0f7100bcaae91bfd3.zip
[PATCH] powerpc: Make UP -> SMP kexec work again
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>
Diffstat (limited to 'arch/powerpc')
-rw-r--r--arch/powerpc/kernel/head_64.S4
1 files changed, 1 insertions, 3 deletions
diff --git a/arch/powerpc/kernel/head_64.S b/arch/powerpc/kernel/head_64.S
index 415659629394..2b03a09fe5e9 100644
--- a/arch/powerpc/kernel/head_64.S
+++ b/arch/powerpc/kernel/head_64.S
@@ -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"
OpenPOWER on IntegriCloud