arm64: ptrace: add PTRACE_SET_SYSCALL
authorAKASHI Takahiro <takahiro.akashi@linaro.org>
Thu, 4 Sep 2014 13:54:29 +0000 (14:54 +0100)
committerJP Abgrall <jpa@google.com>
Tue, 7 Oct 2014 22:15:31 +0000 (15:15 -0700)
commitabbfed9ed1a78701ef3db74f5287958feb897035
treea8c9d7558aa2e80ceb29f2c6069b126d4561bf5b
parent88835a3a4ea3b5107c3ea79ee1169aac5fadf808
arm64: ptrace: add PTRACE_SET_SYSCALL

Note: This patch is from v6 of Takahiro's proposed
"arm64: add seccomp support" patchset (leecam@google.com)

To allow tracer to be able to change/skip a system call by re-writing
a syscall number, there are several approaches:

(1) modify x8 register with ptrace(PTRACE_SETREGSET), and handle this case
    later on in syscall_trace_enter(), or
(2) support ptrace(PTRACE_SET_SYSCALL) as on arm

Thinking of the fact that user_pt_regs doesn't expose 'syscallno' to
tracer as well as that secure_computing() expects a changed syscall number
to be visible, especially case of -1, before this function returns in
syscall_trace_enter(), we'd better take (2).

Signed-off-by: AKASHI Takahiro <takahiro.akashi <at> linaro.org>
arch/arm64/include/uapi/asm/ptrace.h
arch/arm64/kernel/ptrace.c