diff options
author | AKASHI Takahiro <takahiro.akashi@linaro.org> | 2014-04-30 05:51:30 -0400 |
---|---|---|
committer | Catalin Marinas <catalin.marinas@arm.com> | 2014-05-12 11:43:29 -0400 |
commit | 3157858feff89196635b01495d5ec9ebe206639e (patch) | |
tree | bd480fd2334d69ec10e7fc22befc9b795278ef58 /arch/arm64/kernel/entry.S | |
parent | 449f81a4da4d99980064943d504bb19d07e86aec (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.S | 10 |
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 | /* |