BACKPORT: 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 <>
Signed-off-by: Will Deacon <>

Bug: 28020023
Patchset: seccomp

(cherry picked from kernel/msm commit e2a1a6886c5c8f9dd90d3ab57403acc00443e160)
Signed-off-by: Kees Cook <>
Change-Id: Ibcd388caea1becc004248dcc539e0824f217f757
2 files changed