From: Tiejun Chen Date: Wed, 7 Oct 2015 03:48:11 +0000 (-0500) Subject: powerpc/85xx: Implement 64-bit kexec support X-Git-Tag: firefly_0821_release~176^2~775^2~1^2~18 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=939fbf00805b395743e2406755ca20f5f959a598;p=firefly-linux-kernel-4.4.55.git powerpc/85xx: Implement 64-bit kexec support Unlike 32-bit 85xx kexec, we don't do a core reset. Signed-off-by: Tiejun Chen [scottwood: edit changelog, and cleanup] Signed-off-by: Scott Wood --- diff --git a/arch/powerpc/platforms/85xx/smp.c b/arch/powerpc/platforms/85xx/smp.c index a0763be7259e..2e4668435307 100644 --- a/arch/powerpc/platforms/85xx/smp.c +++ b/arch/powerpc/platforms/85xx/smp.c @@ -351,6 +351,7 @@ struct smp_ops_t smp_85xx_ops = { }; #ifdef CONFIG_KEXEC +#ifdef CONFIG_PPC32 atomic_t kexec_down_cpus = ATOMIC_INIT(0); void mpc85xx_smp_kexec_cpu_down(int crash_shutdown, int secondary) @@ -370,9 +371,18 @@ static void mpc85xx_smp_kexec_down(void *arg) if (ppc_md.kexec_cpu_down) ppc_md.kexec_cpu_down(0,1); } +#else +void mpc85xx_smp_kexec_cpu_down(int crash_shutdown, int secondary) +{ + local_irq_disable(); + hard_irq_disable(); + mpic_teardown_this_cpu(secondary); +} +#endif static void mpc85xx_smp_machine_kexec(struct kimage *image) { +#ifdef CONFIG_PPC32 int timeout = INT_MAX; int i, num_cpus = num_present_cpus(); @@ -393,6 +403,7 @@ static void mpc85xx_smp_machine_kexec(struct kimage *image) if ( i == smp_processor_id() ) continue; mpic_reset_core(i); } +#endif default_machine_kexec(image); }