• Mark Rutland's avatar
    arm64: entry: remove pointless SPSR mode check · ee03353b
    Mark Rutland authored
    In work_pending, we may skip work if the stacked SPSR value represents
    anything other than an EL0 context. We then immediately invoke the
    kernel_exit 0 macro as part of ret_to_user, assuming a return to EL0.
    This is somewhat confusing.
    
    We use work_pending as part of the ret_to_user/ret_fast_syscall state
    machine. We only use ret_fast_syscall in the return from an SVC issued
    from EL0. We use ret_to_user for return from EL0 exception handlers and
    also for return from ret_from_fork in the case the task was not a kernel
    thread (i.e. it is a user task).
    
    Thus in all cases the stacked SPSR value must represent an EL0 context,
    and the check is redundant. This patch removes it, along with the now
    unused no_work_pending label.
    
    Cc: Chris Metcalf <cmetcalf@ezchip.com>
    Acked-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
    Signed-off-by: default avatarMark Rutland <mark.rutland@arm.com>
    Signed-off-by: default avatarWill Deacon <will.deacon@arm.com>
    ee03353b
entry.S 17.4 KB