aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm64/kernel/entry.S
diff options
context:
space:
mode:
authorAKASHI Takahiro <takahiro.akashi@linaro.org>2014-04-30 05:51:30 -0400
committerCatalin Marinas <catalin.marinas@arm.com>2014-05-12 11:43:29 -0400
commit3157858feff89196635b01495d5ec9ebe206639e (patch)
treebd480fd2334d69ec10e7fc22befc9b795278ef58 /arch/arm64/kernel/entry.S
parent449f81a4da4d99980064943d504bb19d07e86aec (diff)
arm64: split syscall_trace() into separate functions for enter/exit
As done in arm, this change makes it easy to confirm we invoke syscall related hooks, including syscall tracepoint, audit and seccomp which would be implemented later, in correct order. That is, undoing operations in the opposite order on exit that they were done on entry. Acked-by: Will Deacon <will.deacon@arm.com> Signed-off-by: AKASHI Takahiro <takahiro.akashi@linaro.org> Signed-off-by: Will Deacon <will.deacon@arm.com> Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Diffstat (limited to 'arch/arm64/kernel/entry.S')
-rw-r--r--arch/arm64/kernel/entry.S10
1 files changed, 4 insertions, 6 deletions
diff --git a/arch/arm64/kernel/entry.S b/arch/arm64/kernel/entry.S
index be95f3544ce4..a670d0a98c89 100644
--- a/arch/arm64/kernel/entry.S
+++ b/arch/arm64/kernel/entry.S
@@ -628,9 +628,8 @@ ENDPROC(el0_svc)
628 * switches, and waiting for our parent to respond. 628 * switches, and waiting for our parent to respond.
629 */ 629 */
630__sys_trace: 630__sys_trace:
631 mov x1, sp 631 mov x0, sp
632 mov w0, #0 // trace entry 632 bl syscall_trace_enter
633 bl syscall_trace
634 adr lr, __sys_trace_return // return address 633 adr lr, __sys_trace_return // return address
635 uxtw scno, w0 // syscall number (possibly new) 634 uxtw scno, w0 // syscall number (possibly new)
636 mov x1, sp // pointer to regs 635 mov x1, sp // pointer to regs
@@ -645,9 +644,8 @@ __sys_trace:
645 644
646__sys_trace_return: 645__sys_trace_return:
647 str x0, [sp] // save returned x0 646 str x0, [sp] // save returned x0
648 mov x1, sp 647 mov x0, sp
649 mov w0, #1 // trace exit 648 bl syscall_trace_exit
650 bl syscall_trace
651 b ret_to_user 649 b ret_to_user
652 650
653/* 651/*