arm64: handle sys and undef traps consistently
authorMark Rutland <mark.rutland@arm.com>
Fri, 27 Jan 2017 16:15:38 +0000 (16:15 +0000)
committerWill Deacon <will.deacon@arm.com>
Fri, 27 Jan 2017 17:13:14 +0000 (17:13 +0000)
commit49f6cba617fef4bc097a291e0dfd028cc7073c52
treed45460e73e98a004d0bb9ddb3cadfabaa8f9d624
parentfa715319c11f7f94ae3d19efb9c2cd69fa933f48
arm64: handle sys and undef traps consistently

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: Mark Rutland <mark.rutland@arm.com>
Acked-by: Catalin Marinas <catalin.marinas@arm.com>
Reviewed-by: Suzuki Poulose <suzuki.poulose@arm.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
arch/arm64/kernel/traps.c