[PATCH] arm: versatile: don't mark pen as __INIT

Mark Rutland mark.rutland at arm.com
Mon Jun 10 14:52:40 EDT 2013


On Mon, Jun 10, 2013 at 07:39:27PM +0100, Stephen Boyd wrote:
> On 06/10/13 08:07, Mark Rutland wrote:
> > When booting fewer cores than are physically present on a versatile
> > platform (e.g. when passing maxcpus=N on the command line), some
> > secondary cores may remain in the holding pen, which is marked __INIT.
> > Late in the boot process, the memory comprising the holding pen will be
> > released to the kernel for more general use, and may be overwritten with
> > arbitrary data, which can cause the held secondaries to start behaving
> > unpredictably. This can lead to all manner of odd behaviour from the
> > kernel.
> >
> > Instead don't mark the section as __INIT. This means we can't reuse the
> > pen memory, but we won't get secondaries corrupting the rest of the
> > kernel.
> >
> > Signed-off-by: Mark Rutland <mark.rutland at arm.com>
> > Acked-by: Pawel Moll <pawel.moll at arm.com>
> > Cc: Lorenzo Pieralisi <lorenzo.pieralisi at arm.com>
> > ---
> >  arch/arm/plat-versatile/headsmp.S | 2 --
> >  1 file changed, 2 deletions(-)
> >
> > diff --git a/arch/arm/plat-versatile/headsmp.S b/arch/arm/plat-versatile/headsmp.S
> > index b178d44..2677bc3 100644
> > --- a/arch/arm/plat-versatile/headsmp.S
> > +++ b/arch/arm/plat-versatile/headsmp.S
> > @@ -11,8 +11,6 @@
> >  #include <linux/linkage.h>
> >  #include <linux/init.h>
> >  
> > -	__INIT
> > -
> >  /*
> >   * Realview/Versatile Express specific entry point for secondary CPUs.
> >   * This provides a "holding pen" into which all secondary cores are held
> 
> Why doesn't __CPUINIT work?

Won't we then encounter the same problem on builds without CPU_HOTPLUG? I
thought we'd throw away the .cpuinit.* section(s) in that case?

Thanks,
Mark.



More information about the linux-arm-kernel mailing list