powerpc/64: Simplify __secondary_start paca->kstack handling

Michael Ellerman patch-notifications at ellerman.id.au
Tue Feb 26 14:27:52 AEDT 2019


On Sat, 2019-02-23 at 12:24:39 UTC, Michael Ellerman wrote:
> In __secondary_start() we load the thread_info of the idle task of the
> secondary CPU from current_set[cpu], and then convert it into a stack
> pointer before storing that back to paca->kstack.
> 
> As pointed out in commit f761622e5943 ("powerpc: Initialise
> paca->kstack before early_setup_secondary") it's important that we
> initialise paca->kstack before calling the MMU setup code, in
> particular slb_initialize(), because it will bolt the SLB entry for
> the kstack into the SLB.
> 
> However we have already setup paca->kstack in cpu_idle_thread_init(),
> since commit 3b5750644b2f ("[POWERPC] Bolt in SLB entry for kernel
> stack on secondary cpus") (May 2008).
> 
> It's also in cpu_idle_thread_init() that we initialise current_set[cpu]
> with the thread_info pointer, so there is no issue of the timing being
> different between the two.
> 
> Therefore the initialisation of paca->kstack in __setup_secondary() is
> completely redundant, so remove it.
> 
> This has the added benefit of removing code that runs in real mode,
> and is therefore restricted by the RMO, and so opens the way for us to
> enable THREAD_INFO_IN_TASK.
> 
> Signed-off-by: Michael Ellerman <mpe at ellerman.id.au>

Applied to powerpc next.

https://git.kernel.org/powerpc/c/eafd825ed7106ac1ca84d20d8b3b8682

cheers


More information about the Linuxppc-dev mailing list