diff options
Diffstat (limited to 'arch/ppc64/kernel/machine_kexec.c')
-rw-r--r-- | arch/ppc64/kernel/machine_kexec.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/arch/ppc64/kernel/machine_kexec.c b/arch/ppc64/kernel/machine_kexec.c index fdb2fc649d72..4775f12a013c 100644 --- a/arch/ppc64/kernel/machine_kexec.c +++ b/arch/ppc64/kernel/machine_kexec.c | |||
@@ -185,7 +185,7 @@ void kexec_copy_flush(struct kimage *image) | |||
185 | void kexec_smp_down(void *arg) | 185 | void kexec_smp_down(void *arg) |
186 | { | 186 | { |
187 | if (ppc_md.cpu_irq_down) | 187 | if (ppc_md.cpu_irq_down) |
188 | ppc_md.cpu_irq_down(); | 188 | ppc_md.cpu_irq_down(1); |
189 | 189 | ||
190 | local_irq_disable(); | 190 | local_irq_disable(); |
191 | kexec_smp_wait(); | 191 | kexec_smp_wait(); |
@@ -232,7 +232,7 @@ static void kexec_prepare_cpus(void) | |||
232 | 232 | ||
233 | /* after we tell the others to go down */ | 233 | /* after we tell the others to go down */ |
234 | if (ppc_md.cpu_irq_down) | 234 | if (ppc_md.cpu_irq_down) |
235 | ppc_md.cpu_irq_down(); | 235 | ppc_md.cpu_irq_down(0); |
236 | 236 | ||
237 | put_cpu(); | 237 | put_cpu(); |
238 | 238 | ||
@@ -243,15 +243,19 @@ static void kexec_prepare_cpus(void) | |||
243 | 243 | ||
244 | static void kexec_prepare_cpus(void) | 244 | static void kexec_prepare_cpus(void) |
245 | { | 245 | { |
246 | extern void smp_release_cpus(void); | ||
246 | /* | 247 | /* |
247 | * move the secondarys to us so that we can copy | 248 | * move the secondarys to us so that we can copy |
248 | * the new kernel 0-0x100 safely | 249 | * the new kernel 0-0x100 safely |
249 | * | 250 | * |
250 | * do this if kexec in setup.c ? | 251 | * do this if kexec in setup.c ? |
252 | * | ||
253 | * We need to release the cpus if we are ever going from an | ||
254 | * UP to an SMP kernel. | ||
251 | */ | 255 | */ |
252 | smp_relase_cpus(); | 256 | smp_release_cpus(); |
253 | if (ppc_md.cpu_irq_down) | 257 | if (ppc_md.cpu_irq_down) |
254 | ppc_md.cpu_irq_down(); | 258 | ppc_md.cpu_irq_down(0); |
255 | local_irq_disable(); | 259 | local_irq_disable(); |
256 | } | 260 | } |
257 | 261 | ||