arm64: ptrace: allow tracer to skip a system call
authorAKASHI Takahiro <takahiro.akashi@linaro.org>
Fri, 28 Nov 2014 05:26:35 +0000 (05:26 +0000)
committerWill Deacon <will.deacon@arm.com>
Fri, 28 Nov 2014 10:24:13 +0000 (10:24 +0000)
commit1014c81d9a5546b64352c04cdb93494aceb317fc
treee587ed27bb5651cbf6571fd804f479b0618c063c
parent766a85d7bc5d7f1ddd6de28bdb844eae45ec63b0
arm64: ptrace: allow tracer to skip a system call

If tracer modifies a syscall number to -1, this traced system call should
be skipped with a return value specified in x0.
This patch implements this semantics.

Please note:
* syscall entry tracing and syscall exit tracing (ftrace tracepoint and
  audit) are always executed, if enabled, even when skipping a system call
  (that is, -1).
  In this way, we can avoid a potential bug where audit_syscall_entry()
  might be called without audit_syscall_exit() at the previous system call
  being called, that would cause OOPs in audit_syscall_entry().

Signed-off-by: AKASHI Takahiro <takahiro.akashi@linaro.org>
[will: fixed up conflict with blr rework]
Signed-off-by: Will Deacon <will.deacon@arm.com>
arch/arm64/kernel/entry.S