diff options
Diffstat (limited to 'arch/s390/kernel/ptrace.c')
-rw-r--r-- | arch/s390/kernel/ptrace.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/arch/s390/kernel/ptrace.c b/arch/s390/kernel/ptrace.c index b6fc1ae2ffcb..490b39934d65 100644 --- a/arch/s390/kernel/ptrace.c +++ b/arch/s390/kernel/ptrace.c | |||
@@ -37,6 +37,7 @@ | |||
37 | #include <linux/regset.h> | 37 | #include <linux/regset.h> |
38 | #include <linux/tracehook.h> | 38 | #include <linux/tracehook.h> |
39 | #include <linux/seccomp.h> | 39 | #include <linux/seccomp.h> |
40 | #include <trace/syscall.h> | ||
40 | #include <asm/compat.h> | 41 | #include <asm/compat.h> |
41 | #include <asm/segment.h> | 42 | #include <asm/segment.h> |
42 | #include <asm/page.h> | 43 | #include <asm/page.h> |
@@ -661,6 +662,9 @@ asmlinkage long do_syscall_trace_enter(struct pt_regs *regs) | |||
661 | ret = -1; | 662 | ret = -1; |
662 | } | 663 | } |
663 | 664 | ||
665 | if (unlikely(test_thread_flag(TIF_SYSCALL_FTRACE))) | ||
666 | ftrace_syscall_enter(regs); | ||
667 | |||
664 | if (unlikely(current->audit_context)) | 668 | if (unlikely(current->audit_context)) |
665 | audit_syscall_entry(is_compat_task() ? | 669 | audit_syscall_entry(is_compat_task() ? |
666 | AUDIT_ARCH_S390 : AUDIT_ARCH_S390X, | 670 | AUDIT_ARCH_S390 : AUDIT_ARCH_S390X, |
@@ -676,6 +680,9 @@ asmlinkage void do_syscall_trace_exit(struct pt_regs *regs) | |||
676 | audit_syscall_exit(AUDITSC_RESULT(regs->gprs[2]), | 680 | audit_syscall_exit(AUDITSC_RESULT(regs->gprs[2]), |
677 | regs->gprs[2]); | 681 | regs->gprs[2]); |
678 | 682 | ||
683 | if (unlikely(test_thread_flag(TIF_SYSCALL_FTRACE))) | ||
684 | ftrace_syscall_exit(regs); | ||
685 | |||
679 | if (test_thread_flag(TIF_SYSCALL_TRACE)) | 686 | if (test_thread_flag(TIF_SYSCALL_TRACE)) |
680 | tracehook_report_syscall_exit(regs, 0); | 687 | tracehook_report_syscall_exit(regs, 0); |
681 | } | 688 | } |