arm64: ptrace: add NT_ARM_SYSTEM_CALL regset
authorAKASHI Takahiro <takahiro.akashi@linaro.org>
Fri, 28 Nov 2014 05:26:34 +0000 (05:26 +0000)
committerWill Deacon <will.deacon@arm.com>
Fri, 28 Nov 2014 10:19:49 +0000 (10:19 +0000)
commit766a85d7bc5d7f1ddd6de28bdb844eae45ec63b0
tree3445af3c028dbaae227fcd3f74d45b80da115b8a
parent034edabe6cf1d0dea49d4c836ba128cec90fad04
arm64: ptrace: add NT_ARM_SYSTEM_CALL regset

This regeset is intended to be used to get and set a system call number
while tracing.
There was some discussion about possible approaches to do so:

(1) modify x8 register with ptrace(PTRACE_SETREGSET) indirectly,
    and update regs->syscallno later on in syscall_trace_enter(), or
(2) define a dedicated regset for this purpose as on s390, or
(3) support ptrace(PTRACE_SET_SYSCALL) as on arch/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,
especially case of -1, to be visible before this function returns in
syscall_trace_enter(), (1) doesn't work well.
We will take (2) since it looks much cleaner.

Signed-off-by: AKASHI Takahiro <takahiro.akashi@linaro.org>
Signed-off-by: Will Deacon <will.deacon@arm.com>
arch/arm64/kernel/ptrace.c
include/uapi/linux/elf.h