• Michael Ellerman's avatar
    powerpc/64: Simplify __secondary_start paca->kstack handling · eafd825e
    Michael Ellerman authored
    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 f761622e ("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 3b575064 ("[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: default avatarMichael Ellerman <mpe@ellerman.id.au>
    eafd825e
head_64.S 25.4 KB