• Chris Metcalf's avatar
    arm64: factor work_pending state machine to C · 421dd6fa
    Chris Metcalf authored
    Currently ret_fast_syscall, work_pending, and ret_to_user form an ad-hoc
    state machine that can be difficult to reason about due to duplicated
    code and a large number of branch targets.
    
    This patch factors the common logic out into the existing
    do_notify_resume function, converting the code to C in the process,
    making the code more legible.
    
    This patch tries to closely mirror the existing behaviour while using
    the usual C control flow primitives. As local_irq_{disable,enable} may
    be instrumented, we balance exception entry (where we will almost most
    likely enable IRQs) with a call to trace_hardirqs_on just before the
    return to userspace.
    Signed-off-by: default avatarChris Metcalf <cmetcalf@mellanox.com>
    Signed-off-by: default avatarWill Deacon <will.deacon@arm.com>
    421dd6fa
signal.c 11.2 KB