|
@@ -29,6 +29,7 @@
|
|
|
#include <linux/signal.h>
|
|
|
#include <linux/seccomp.h>
|
|
|
#include <linux/audit.h>
|
|
|
+#include <trace/syscall.h>
|
|
|
#ifdef CONFIG_PPC32
|
|
|
#include <linux/module.h>
|
|
|
#endif
|
|
@@ -40,6 +41,9 @@
|
|
|
#include <asm/pgtable.h>
|
|
|
#include <asm/system.h>
|
|
|
|
|
|
+#define CREATE_TRACE_POINTS
|
|
|
+#include <trace/events/syscalls.h>
|
|
|
+
|
|
|
/*
|
|
|
* The parameter save area on the stack is used to store arguments being passed
|
|
|
* to callee function and is located at fixed offset from stack pointer.
|
|
@@ -1710,6 +1714,9 @@ long do_syscall_trace_enter(struct pt_regs *regs)
|
|
|
*/
|
|
|
ret = -1L;
|
|
|
|
|
|
+ if (unlikely(test_thread_flag(TIF_SYSCALL_TRACEPOINT)))
|
|
|
+ trace_sys_enter(regs, regs->gpr[0]);
|
|
|
+
|
|
|
if (unlikely(current->audit_context)) {
|
|
|
#ifdef CONFIG_PPC64
|
|
|
if (!is_32bit_task())
|
|
@@ -1738,6 +1745,9 @@ void do_syscall_trace_leave(struct pt_regs *regs)
|
|
|
audit_syscall_exit((regs->ccr&0x10000000)?AUDITSC_FAILURE:AUDITSC_SUCCESS,
|
|
|
regs->result);
|
|
|
|
|
|
+ if (unlikely(test_thread_flag(TIF_SYSCALL_TRACEPOINT)))
|
|
|
+ trace_sys_exit(regs, regs->result);
|
|
|
+
|
|
|
step = test_thread_flag(TIF_SINGLESTEP);
|
|
|
if (step || test_thread_flag(TIF_SYSCALL_TRACE))
|
|
|
tracehook_report_syscall_exit(regs, step);
|