For syscall number smaller than 0xf0000, arm calls sys_ni_syscall instead of arm_syscall in arch/arm/kernel/entry-common.S, which returns -ENOSYS instead of raising SIGILL. Mirror this behavior for compat syscalls in arm64.
Fixes: 532826f3712b607 ("arm64: Mirror arm for unimplemented compat syscalls") Signed-off-by: Pi-Hsun Shih <pih...@chromium.org> --- arch/arm64/kernel/syscall.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/arm64/kernel/syscall.c b/arch/arm64/kernel/syscall.c index 8f3371415642ad..95fd8c7ec8a171 100644 --- a/arch/arm64/kernel/syscall.c +++ b/arch/arm64/kernel/syscall.c @@ -21,7 +21,7 @@ asmlinkage long do_ni_syscall(struct pt_regs *regs) { #ifdef CONFIG_COMPAT long ret; - if (is_compat_task()) { + if (is_compat_task() && regs->regs[7] >= __ARM_NR_COMPAT_BASE) { ret = compat_arm_syscall(regs); if (ret != -ENOSYS) return ret; -- 2.20.1.415.g653613c723-goog