aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorMichael Ellerman <michael@ellerman.id.au>2006-02-15 22:13:51 -0500
committerPaul Mackerras <paulus@samba.org>2006-02-19 20:03:36 -0500
commit8fca92705ef462f39e7db5a0f7100bcaae91bfd3 (patch)
treee9b4db50bb523b869616bcb5dcea763b34069f42 /arch
parentf018b36f3e1f21318066de8d01740d30e38b03d5 (diff)
[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')
-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)
157 SET_REG_IMMEDIATE(r4, .hmt_init) 157 SET_REG_IMMEDIATE(r4, .hmt_init)
158 mtctr r4 158 mtctr r4
159 bctr 159 bctr
160#else 160#elif defined(CONFIG_SMP) || defined(CONFIG_KEXEC)
161#ifdef CONFIG_SMP
162 LOAD_REG_IMMEDIATE(r4, .pSeries_secondary_smp_init) 161 LOAD_REG_IMMEDIATE(r4, .pSeries_secondary_smp_init)
163 mtctr r4 162 mtctr r4
164 mr r3,r24 163 mr r3,r24
@@ -166,7 +165,6 @@ _GLOBAL(__secondary_hold)
166#else 165#else
167 BUG_OPCODE 166 BUG_OPCODE
168#endif 167#endif
169#endif
170 168
171/* This value is used to mark exception frames on the stack. */ 169/* This value is used to mark exception frames on the stack. */
172 .section ".toc","aw" 170 .section ".toc","aw"