Re: [patch 01/20] idle: Move x86ism out of generic code

From: Thomas Gleixner
Date: Mon Feb 29 2016 - 15:07:53 EST


On Mon, 29 Feb 2016, Will Deacon wrote:

> On Mon, Feb 29, 2016 at 08:35:41PM +0100, Thomas Gleixner wrote:
> > On Sat, 27 Feb 2016, Brian Gerst wrote:
> > > > arch_cpu_idle_prepare();
> > > > cpu_idle_loop();
> > > > }
> > >
> > > Does this actually work with stack protector enabled?
> > > boot_init_stack_canary() is inlined while arch_cpu_idle_prepare() is
> > > not.
> >
> > Stupid me. No it does of course not. I could have sworn that I tested that,
> > but obvioulsy not.
> >
> > I drop that patch, but actually the real question is whether we can drop that
> > '#ifdef x86' around that boot_init_stack_canary() invocation.
> >
> > AFAICT, neither arm, arm64 nor mips and sh call it on anything else than the
> > boot cpu. I can't see why that would be an issue on those architectures and
> > why it would be a problem if the boot cpu calls it again here.
> >
> > CC'ed the relevant maintainers. Is there any issue with the patch below?
>
> On arm[64], the canary is unfortunately global, so I don't think it would
> be safe to update it live like this without effectively stopping the
> machine and forcing everybody into idle.

Thanks for clarification.

Thomas