• Mark Rutland's avatar
    arm64: remove sigreturn wrappers · 3085e164
    Mark Rutland authored
    The arm64 sigreturn* syscall handlers are non-standard. Rather than
    taking a number of user parameters in registers as per the AAPCS,
    they expect the pt_regs as their sole argument.
    
    To make this work, we override the syscall definitions to invoke
    wrappers written in assembly, which mov the SP into x0, and branch to
    their respective C functions.
    
    On other architectures (such as x86), the sigreturn* functions take no
    argument and instead use current_pt_regs() to acquire the user
    registers. This requires less boilerplate code, and allows for other
    features such as interposing C code in this path.
    
    This patch takes the same approach for arm64.
    Signed-off-by: default avatarMark Rutland <mark.rutland@arm.com>
    Tentatively-reviewed-by: default avatarDave Martin <dave.martin@arm.com>
    Reviewed-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
    Cc: Will Deacon <will.deacon@arm.com>
    Signed-off-by: default avatarWill Deacon <will.deacon@arm.com>
    3085e164
signal.c 24 KB