Patchwork [RFC] ppc: fix default_machine_crash_shutdown #ifdef botch

login
register
mail settings
Submitter Paul E. McKenney
Date June 16, 2010, 12:48 a.m.
Message ID <20100616004839.GA18110@linux.vnet.ibm.com>
Download mbox | patch
Permalink /patch/55829/
State Accepted
Commit 16617070bd33d355f93ee48a4b7e549fc7c89ddf
Delegated to: Benjamin Herrenschmidt
Headers show

Comments

Paul E. McKenney - June 16, 2010, 12:48 a.m.
crash_kexec_wait_realmode() is defined only if CONFIG_PPC_STD_MMU_64
and CONFIG_SMP, but is called if CONFIG_PPC_STD_MMU_64 even if !CONFIG_SMP.
Fix the conditional compilation around the invocation.

Untested, probably does not compile.

Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
---
Michael Neuling - June 17, 2010, 1:56 a.m.
In message <20100616004839.GA18110@linux.vnet.ibm.com> you wrote:
> crash_kexec_wait_realmode() is defined only if CONFIG_PPC_STD_MMU_64
> and CONFIG_SMP, but is called if CONFIG_PPC_STD_MMU_64 even if !CONFIG_SMP.
> Fix the conditional compilation around the invocation.
> 
> Untested, probably does not compile.
> 
> Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>

This should be right since we don't need to wait for the other CPUs if
there are no others... 

Compiles for me and even fixes the SMP=N case.  Thanks!

Acked-by: Michael Neuling <mikey@neuling.org>

> ---
> 
> diff --git a/arch/powerpc/kernel/crash.c b/arch/powerpc/kernel/crash.c
> index b46f2e0..29df48f 100644
> --- a/arch/powerpc/kernel/crash.c
> +++ b/arch/powerpc/kernel/crash.c
> @@ -447,7 +447,7 @@ void default_machine_crash_shutdown(struct pt_regs *regs)
>  	crash_kexec_prepare_cpus(crashing_cpu);
>  	cpu_set(crashing_cpu, cpus_in_crash);
>  	crash_kexec_stop_spus();
> -#ifdef CONFIG_PPC_STD_MMU_64
> +#if defined(CONFIG_PPC_STD_MMU_64) && defined(CONFIG_SMP)
>  	crash_kexec_wait_realmode(crashing_cpu);
>  #endif
>  	if (ppc_md.kexec_cpu_down)
> _______________________________________________
> Linuxppc-dev mailing list
> Linuxppc-dev@lists.ozlabs.org
> https://lists.ozlabs.org/listinfo/linuxppc-dev
>
Paul E. McKenney - June 17, 2010, 4:30 a.m.
On Thu, Jun 17, 2010 at 11:56:53AM +1000, Michael Neuling wrote:
> 
> 
> In message <20100616004839.GA18110@linux.vnet.ibm.com> you wrote:
> > crash_kexec_wait_realmode() is defined only if CONFIG_PPC_STD_MMU_64
> > and CONFIG_SMP, but is called if CONFIG_PPC_STD_MMU_64 even if !CONFIG_SMP.
> > Fix the conditional compilation around the invocation.
> > 
> > Untested, probably does not compile.
> > 
> > Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
> 
> This should be right since we don't need to wait for the other CPUs if
> there are no others... 
> 
> Compiles for me and even fixes the SMP=N case.  Thanks!

Glad it worked!  ;-)

							Thanx, Paul

> Acked-by: Michael Neuling <mikey@neuling.org>
> 
> > ---
> > 
> > diff --git a/arch/powerpc/kernel/crash.c b/arch/powerpc/kernel/crash.c
> > index b46f2e0..29df48f 100644
> > --- a/arch/powerpc/kernel/crash.c
> > +++ b/arch/powerpc/kernel/crash.c
> > @@ -447,7 +447,7 @@ void default_machine_crash_shutdown(struct pt_regs *regs)
> >  	crash_kexec_prepare_cpus(crashing_cpu);
> >  	cpu_set(crashing_cpu, cpus_in_crash);
> >  	crash_kexec_stop_spus();
> > -#ifdef CONFIG_PPC_STD_MMU_64
> > +#if defined(CONFIG_PPC_STD_MMU_64) && defined(CONFIG_SMP)
> >  	crash_kexec_wait_realmode(crashing_cpu);
> >  #endif
> >  	if (ppc_md.kexec_cpu_down)
> > _______________________________________________
> > Linuxppc-dev mailing list
> > Linuxppc-dev@lists.ozlabs.org
> > https://lists.ozlabs.org/listinfo/linuxppc-dev
> >

Patch

diff --git a/arch/powerpc/kernel/crash.c b/arch/powerpc/kernel/crash.c
index b46f2e0..29df48f 100644
--- a/arch/powerpc/kernel/crash.c
+++ b/arch/powerpc/kernel/crash.c
@@ -447,7 +447,7 @@  void default_machine_crash_shutdown(struct pt_regs *regs)
 	crash_kexec_prepare_cpus(crashing_cpu);
 	cpu_set(crashing_cpu, cpus_in_crash);
 	crash_kexec_stop_spus();
-#ifdef CONFIG_PPC_STD_MMU_64
+#if defined(CONFIG_PPC_STD_MMU_64) && defined(CONFIG_SMP)
 	crash_kexec_wait_realmode(crashing_cpu);
 #endif
 	if (ppc_md.kexec_cpu_down)