• Mark Rutland's avatar
    arm64: handle sys and undef traps consistently · 49f6cba6
    Mark Rutland authored
    If an EL0 instruction in the SYS class triggers an exception, do_sysintr
    looks for a sys64_hook matching the instruction, and if none is found,
    injects a SIGILL. This mirrors what we do for undefined instruction
    encodings in do_undefinstr, where we look for an undef_hook matching the
    instruction, and if none is found, inject a SIGILL.
    
    Over time, new SYS instruction encodings may be allocated. Prior to
    allocation, exceptions resulting from these would be handled by
    do_undefinstr, whereas after allocation these may be handled by
    do_sysintr.
    
    To ensure that we have consistent behaviour if and when this happens, it
    would be beneficial to have do_sysinstr fall back to do_undefinstr.
    Signed-off-by: default avatarMark Rutland <mark.rutland@arm.com>
    Acked-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
    Reviewed-by: default avatarSuzuki Poulose <suzuki.poulose@arm.com>
    Signed-off-by: default avatarWill Deacon <will.deacon@arm.com>
    49f6cba6
traps.c 17.2 KB