Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ad75b514 authored by Kees Cook's avatar Kees Cook Committed by Russell King
Browse files

ARM: 7579/1: arch/allow a scno of -1 to not cause a SIGILL



On tracehook-friendly platforms, a system call number of -1 falls
through without running much code or taking much action.

ARM is different. This adds a short-circuit check in the trace path to
avoid any additional work, as suggested by Russell King, to make sure
that ARM behaves the same way as other platforms.

Signed-off-by: default avatarKees Cook <keescook@chromium.org>
Acked-by: default avatarWill Drewry <wad@chromium.org>
Reviewed-by: default avatarWill Deacon <will.deacon@arm.com>
Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
parent 9b790d71
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -448,7 +448,10 @@ __sys_trace:
	ldmccia	r1, {r0 - r6}			@ have to reload r0 - r6
	stmccia	sp, {r4, r5}			@ and update the stack args
	ldrcc	pc, [tbl, scno, lsl #2]		@ call sys_* routine
	b	2b
	cmp	scno, #-1			@ skip the syscall?
	bne	2b
	add	sp, sp, #S_OFF			@ restore stack
	b	ret_slow_syscall

__sys_trace_return:
	str	r0, [sp, #S_R0 + S_OFF]!	@ save returned r0