• Vasily Gorbik's avatar
    s390: avoid misusing CALL_ON_STACK for task stack setup · 7bcaad1f
    Vasily Gorbik authored
    CALL_ON_STACK is intended to be used for temporary stack switching with
    potential return to the caller.
    
    When CALL_ON_STACK is misused to switch from nodat stack to task stack
    back_chain information would later lead stack unwinder from task stack into
    (per cpu) nodat stack which is reused for other purposes. This would
    yield confusing unwinding result or errors.
    
    To avoid that introduce CALL_ON_STACK_NORETURN to be used instead. It
    makes sure that back_chain is zeroed and unwinder finishes gracefully
    ending up at task pt_regs.
    Reviewed-by: default avatarHeiko Carstens <heiko.carstens@de.ibm.com>
    Signed-off-by: default avatarVasily Gorbik <gor@linux.ibm.com>
    7bcaad1f
smp.c 31.3 KB