|
@@ -94,6 +94,7 @@ struct thread_info {
|
|
#define TIF_FORCED_TF 24 /* true if TF in eflags artificially */
|
|
#define TIF_FORCED_TF 24 /* true if TF in eflags artificially */
|
|
#define TIF_DEBUGCTLMSR 25 /* uses thread_struct.debugctlmsr */
|
|
#define TIF_DEBUGCTLMSR 25 /* uses thread_struct.debugctlmsr */
|
|
#define TIF_DS_AREA_MSR 26 /* uses thread_struct.ds_area_msr */
|
|
#define TIF_DS_AREA_MSR 26 /* uses thread_struct.ds_area_msr */
|
|
|
|
+#define TIF_SYSCALL_FTRACE 27 /* for ftrace syscall instrumentation */
|
|
|
|
|
|
#define _TIF_SYSCALL_TRACE (1 << TIF_SYSCALL_TRACE)
|
|
#define _TIF_SYSCALL_TRACE (1 << TIF_SYSCALL_TRACE)
|
|
#define _TIF_NOTIFY_RESUME (1 << TIF_NOTIFY_RESUME)
|
|
#define _TIF_NOTIFY_RESUME (1 << TIF_NOTIFY_RESUME)
|
|
@@ -115,15 +116,17 @@ struct thread_info {
|
|
#define _TIF_FORCED_TF (1 << TIF_FORCED_TF)
|
|
#define _TIF_FORCED_TF (1 << TIF_FORCED_TF)
|
|
#define _TIF_DEBUGCTLMSR (1 << TIF_DEBUGCTLMSR)
|
|
#define _TIF_DEBUGCTLMSR (1 << TIF_DEBUGCTLMSR)
|
|
#define _TIF_DS_AREA_MSR (1 << TIF_DS_AREA_MSR)
|
|
#define _TIF_DS_AREA_MSR (1 << TIF_DS_AREA_MSR)
|
|
|
|
+#define _TIF_SYSCALL_FTRACE (1 << TIF_SYSCALL_FTRACE)
|
|
|
|
|
|
/* work to do in syscall_trace_enter() */
|
|
/* work to do in syscall_trace_enter() */
|
|
#define _TIF_WORK_SYSCALL_ENTRY \
|
|
#define _TIF_WORK_SYSCALL_ENTRY \
|
|
- (_TIF_SYSCALL_TRACE | _TIF_SYSCALL_EMU | \
|
|
|
|
|
|
+ (_TIF_SYSCALL_TRACE | _TIF_SYSCALL_EMU | _TIF_SYSCALL_FTRACE | \
|
|
_TIF_SYSCALL_AUDIT | _TIF_SECCOMP | _TIF_SINGLESTEP)
|
|
_TIF_SYSCALL_AUDIT | _TIF_SECCOMP | _TIF_SINGLESTEP)
|
|
|
|
|
|
/* work to do in syscall_trace_leave() */
|
|
/* work to do in syscall_trace_leave() */
|
|
#define _TIF_WORK_SYSCALL_EXIT \
|
|
#define _TIF_WORK_SYSCALL_EXIT \
|
|
- (_TIF_SYSCALL_TRACE | _TIF_SYSCALL_AUDIT | _TIF_SINGLESTEP)
|
|
|
|
|
|
+ (_TIF_SYSCALL_TRACE | _TIF_SYSCALL_AUDIT | _TIF_SINGLESTEP | \
|
|
|
|
+ _TIF_SYSCALL_FTRACE)
|
|
|
|
|
|
/* work to do on interrupt/exception return */
|
|
/* work to do on interrupt/exception return */
|
|
#define _TIF_WORK_MASK \
|
|
#define _TIF_WORK_MASK \
|
|
@@ -132,7 +135,7 @@ struct thread_info {
|
|
_TIF_SINGLESTEP|_TIF_SECCOMP|_TIF_SYSCALL_EMU))
|
|
_TIF_SINGLESTEP|_TIF_SECCOMP|_TIF_SYSCALL_EMU))
|
|
|
|
|
|
/* work to do on any return to user space */
|
|
/* work to do on any return to user space */
|
|
-#define _TIF_ALLWORK_MASK (0x0000FFFF & ~_TIF_SECCOMP)
|
|
|
|
|
|
+#define _TIF_ALLWORK_MASK ((0x0000FFFF & ~_TIF_SECCOMP) | _TIF_SYSCALL_FTRACE)
|
|
|
|
|
|
/* Only used for 64 bit */
|
|
/* Only used for 64 bit */
|
|
#define _TIF_DO_NOTIFY_MASK \
|
|
#define _TIF_DO_NOTIFY_MASK \
|