• Dave Martin's avatar
    arm64: signal: Allow expansion of the signal frame · 33f08261
    Dave Martin authored
    This patch defines an extra_context signal frame record that can be
    used to describe an expanded signal frame, and modifies the context
    block allocator and signal frame setup and parsing code to create,
    populate, parse and decode this block as necessary.
    
    To avoid abuse by userspace, parse_user_sigframe() attempts to
    ensure that:
    
     * no more than one extra_context is accepted;
     * the extra context data is a sensible size, and properly placed
       and aligned.
    
    The extra_context data is required to start at the first 16-byte
    aligned address immediately after the dummy terminator record
    following extra_context in rt_sigframe.__reserved[] (as ensured
    during signal delivery).  This serves as a sanity-check that the
    signal frame has not been moved or copied without taking the extra
    data into account.
    Signed-off-by: default avatarDave Martin <Dave.Martin@arm.com>
    Reviewed-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
    [will: add __force annotation when casting extra_datap to __user pointer]
    Signed-off-by: default avatarWill Deacon <will.deacon@arm.com>
    33f08261
sigcontext.h 3.56 KB