diff options
| -rw-r--r-- | arch/arm64/include/asm/thread_info.h | 13 | ||||
| -rw-r--r-- | arch/arm64/kernel/entry.S | 5 | 
2 files changed, 16 insertions, 2 deletions
diff --git a/arch/arm64/include/asm/thread_info.h b/arch/arm64/include/asm/thread_info.h index 720e70b66ffd..0a8b2a97a32e 100644 --- a/arch/arm64/include/asm/thread_info.h +++ b/arch/arm64/include/asm/thread_info.h @@ -91,6 +91,9 @@ static inline struct thread_info *current_thread_info(void)  /*   * thread information flags:   *  TIF_SYSCALL_TRACE	- syscall trace active + *  TIF_SYSCALL_TRACEPOINT - syscall tracepoint for ftrace + *  TIF_SYSCALL_AUDIT	- syscall auditing + *  TIF_SECOMP		- syscall secure computing   *  TIF_SIGPENDING	- signal pending   *  TIF_NEED_RESCHED	- rescheduling necessary   *  TIF_NOTIFY_RESUME	- callback before returning to user @@ -101,6 +104,9 @@ static inline struct thread_info *current_thread_info(void)  #define TIF_NEED_RESCHED	1  #define TIF_NOTIFY_RESUME	2	/* callback before returning to user */  #define TIF_SYSCALL_TRACE	8 +#define TIF_SYSCALL_AUDIT	9 +#define TIF_SYSCALL_TRACEPOINT	10 +#define TIF_SECCOMP		11  #define TIF_POLLING_NRFLAG	16  #define TIF_MEMDIE		18	/* is terminating due to OOM killer */  #define TIF_FREEZE		19 @@ -112,10 +118,17 @@ static inline struct thread_info *current_thread_info(void)  #define _TIF_SIGPENDING		(1 << TIF_SIGPENDING)  #define _TIF_NEED_RESCHED	(1 << TIF_NEED_RESCHED)  #define _TIF_NOTIFY_RESUME	(1 << TIF_NOTIFY_RESUME) +#define _TIF_SYSCALL_TRACE	(1 << TIF_SYSCALL_TRACE) +#define _TIF_SYSCALL_AUDIT	(1 << TIF_SYSCALL_AUDIT) +#define _TIF_SYSCALL_TRACEPOINT	(1 << TIF_SYSCALL_TRACEPOINT) +#define _TIF_SECCOMP		(1 << TIF_SECCOMP)  #define _TIF_32BIT		(1 << TIF_32BIT)  #define _TIF_WORK_MASK		(_TIF_NEED_RESCHED | _TIF_SIGPENDING | \  				 _TIF_NOTIFY_RESUME) +#define _TIF_SYSCALL_WORK	(_TIF_SYSCALL_TRACE | _TIF_SYSCALL_AUDIT | \ +				 _TIF_SYSCALL_TRACEPOINT | _TIF_SECCOMP) +  #endif /* __KERNEL__ */  #endif /* __ASM_THREAD_INFO_H */ diff --git a/arch/arm64/kernel/entry.S b/arch/arm64/kernel/entry.S index e8b23a3b68d0..be95f3544ce4 100644 --- a/arch/arm64/kernel/entry.S +++ b/arch/arm64/kernel/entry.S @@ -610,8 +610,9 @@ el0_svc_naked:					// compat entry point  	stp	x0, scno, [sp, #S_ORIG_X0]	// save the original x0 and syscall number  	enable_dbg_and_irq -	ldr	x16, [tsk, #TI_FLAGS]		// check for syscall tracing -	tbnz	x16, #TIF_SYSCALL_TRACE, __sys_trace // are we tracing syscalls? +	ldr	x16, [tsk, #TI_FLAGS]		// check for syscall hooks +	tst	x16, #_TIF_SYSCALL_WORK +	b.ne	__sys_trace  	adr	lr, ret_fast_syscall		// return address  	cmp     scno, sc_nr                     // check upper syscall limit  	b.hs	ni_sys  | 
