summaryrefslogtreecommitdiffstats
path: root/arch/ppc64/kernel/machine_kexec.c
diff options
context:
space:
mode:
authorPaul Mackerras <paulus@samba.org>2005-08-04 12:53:37 -0700
committerLinus Torvalds <torvalds@g5.osdl.org>2005-08-04 13:00:55 -0700
commit6d22d85a852b72398a81b8e476977b28b4400f7c (patch)
tree3824c246813b7c326bceedc0b8c3c8ca49c7fd0b /arch/ppc64/kernel/machine_kexec.c
parent48f1f5328267f52a34e61b8b0e6fc55a23c1348a (diff)
downloadblackbird-op-linux-6d22d85a852b72398a81b8e476977b28b4400f7c.tar.gz
blackbird-op-linux-6d22d85a852b72398a81b8e476977b28b4400f7c.zip
[PATCH] ppc64: fix for kexec boot issue
The kexec boot is not successful on some power machines since all CPUs are getting removed from global interrupt queue (GIQ) before kexec boot. Some systems always expect at least one CPU in GIQ. Hence, this patch will make sure that only secondary CPUs are removed from GIQ. Signed-off-by: Haren Myneni <hbabu@us.ibm.com> Signed-off-by: Paul Mackerras <paulus@samba.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'arch/ppc64/kernel/machine_kexec.c')
-rw-r--r--arch/ppc64/kernel/machine_kexec.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/arch/ppc64/kernel/machine_kexec.c b/arch/ppc64/kernel/machine_kexec.c
index 5c40bb6788df..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)
void kexec_smp_down(void *arg)
{
if (ppc_md.cpu_irq_down)
- ppc_md.cpu_irq_down();
+ ppc_md.cpu_irq_down(1);
local_irq_disable();
kexec_smp_wait();
@@ -232,7 +232,7 @@ static void kexec_prepare_cpus(void)
/* after we tell the others to go down */
if (ppc_md.cpu_irq_down)
- ppc_md.cpu_irq_down();
+ ppc_md.cpu_irq_down(0);
put_cpu();
@@ -255,7 +255,7 @@ static void kexec_prepare_cpus(void)
*/
smp_release_cpus();
if (ppc_md.cpu_irq_down)
- ppc_md.cpu_irq_down();
+ ppc_md.cpu_irq_down(0);
local_irq_disable();
}
OpenPOWER on IntegriCloud