sh: Wire up HAVE_SYSCALL_TRACEPOINTS.
This is necessary to get ftrace syscall tracing working again.. a fairly trivial and mechanical change. The one benefit is that this can also be enabled on sh64, despite not having its own ftrace port. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
This commit is contained in:
		
							parent
							
								
									ea88023b34
								
							
						
					
					
						commit
						a74f7e0410
					
				| @ -20,6 +20,7 @@ config SUPERH | ||||
| 	select HAVE_KERNEL_GZIP | ||||
| 	select HAVE_KERNEL_BZIP2 | ||||
| 	select HAVE_KERNEL_LZMA | ||||
| 	select HAVE_SYSCALL_TRACEPOINTS | ||||
| 	select RTC_LIB | ||||
| 	select GENERIC_ATOMIC64 | ||||
| 	help | ||||
|  | ||||
| @ -116,7 +116,7 @@ extern void free_thread_info(struct thread_info *ti); | ||||
| #define TIF_SYSCALL_AUDIT	5	/* syscall auditing active */ | ||||
| #define TIF_SECCOMP		6	/* secure computing */ | ||||
| #define TIF_NOTIFY_RESUME	7	/* callback before returning to user */ | ||||
| #define TIF_SYSCALL_FTRACE	8	/* for ftrace syscall instrumentation */ | ||||
| #define TIF_SYSCALL_TRACEPOINT	8	/* for ftrace syscall instrumentation */ | ||||
| #define TIF_USEDFPU		16	/* FPU was used by this task this quantum (SMP) */ | ||||
| #define TIF_POLLING_NRFLAG	17	/* true if poll_idle() is polling TIF_NEED_RESCHED */ | ||||
| #define TIF_MEMDIE		18 | ||||
| @ -130,7 +130,7 @@ extern void free_thread_info(struct thread_info *ti); | ||||
| #define _TIF_SYSCALL_AUDIT	(1 << TIF_SYSCALL_AUDIT) | ||||
| #define _TIF_SECCOMP		(1 << TIF_SECCOMP) | ||||
| #define _TIF_NOTIFY_RESUME	(1 << TIF_NOTIFY_RESUME) | ||||
| #define _TIF_SYSCALL_FTRACE	(1 << TIF_SYSCALL_FTRACE) | ||||
| #define _TIF_SYSCALL_TRACEPOINT	(1 << TIF_SYSCALL_TRACEPOINT) | ||||
| #define _TIF_USEDFPU		(1 << TIF_USEDFPU) | ||||
| #define _TIF_POLLING_NRFLAG	(1 << TIF_POLLING_NRFLAG) | ||||
| #define _TIF_FREEZE		(1 << TIF_FREEZE) | ||||
| @ -144,13 +144,13 @@ extern void free_thread_info(struct thread_info *ti); | ||||
| /* work to do in syscall trace */ | ||||
| #define _TIF_WORK_SYSCALL_MASK	(_TIF_SYSCALL_TRACE | _TIF_SINGLESTEP | \ | ||||
| 				 _TIF_SYSCALL_AUDIT | _TIF_SECCOMP    | \ | ||||
| 				 _TIF_SYSCALL_FTRACE) | ||||
| 				 _TIF_SYSCALL_TRACEPOINT) | ||||
| 
 | ||||
| /* work to do on any return to u-space */ | ||||
| #define _TIF_ALLWORK_MASK	(_TIF_SYSCALL_TRACE | _TIF_SIGPENDING      | \ | ||||
| 				 _TIF_NEED_RESCHED  | _TIF_SYSCALL_AUDIT   | \ | ||||
| 				 _TIF_SINGLESTEP    | _TIF_RESTORE_SIGMASK | \ | ||||
| 				 _TIF_NOTIFY_RESUME | _TIF_SYSCALL_FTRACE) | ||||
| 				 _TIF_NOTIFY_RESUME | _TIF_SYSCALL_TRACEPOINT) | ||||
| 
 | ||||
| /* work to do on interrupt/exception return */ | ||||
| #define _TIF_WORK_MASK		(_TIF_ALLWORK_MASK & ~(_TIF_SYSCALL_TRACE | \ | ||||
|  | ||||
| @ -34,7 +34,8 @@ | ||||
| #include <asm/syscalls.h> | ||||
| #include <asm/fpu.h> | ||||
| 
 | ||||
| #include <trace/syscall.h> | ||||
| #define CREATE_TRACE_POINTS | ||||
| #include <trace/events/syscalls.h> | ||||
| 
 | ||||
| /*
 | ||||
|  * This routine will get a word off of the process kernel stack. | ||||
| @ -461,10 +462,8 @@ asmlinkage long do_syscall_trace_enter(struct pt_regs *regs) | ||||
| 		 */ | ||||
| 		ret = -1L; | ||||
| 
 | ||||
| #ifdef CONFIG_FTRACE_SYSCALLS | ||||
| 	if (unlikely(test_thread_flag(TIF_SYSCALL_FTRACE))) | ||||
| 		ftrace_syscall_enter(regs); | ||||
| #endif | ||||
| 	if (unlikely(test_thread_flag(TIF_SYSCALL_TRACEPOINT))) | ||||
| 		trace_sys_enter(regs, regs->regs[0]); | ||||
| 
 | ||||
| 	if (unlikely(current->audit_context)) | ||||
| 		audit_syscall_entry(audit_arch(), regs->regs[3], | ||||
| @ -482,10 +481,8 @@ asmlinkage void do_syscall_trace_leave(struct pt_regs *regs) | ||||
| 		audit_syscall_exit(AUDITSC_RESULT(regs->regs[0]), | ||||
| 				   regs->regs[0]); | ||||
| 
 | ||||
| #ifdef CONFIG_FTRACE_SYSCALLS | ||||
| 	if (unlikely(test_thread_flag(TIF_SYSCALL_FTRACE))) | ||||
| 		ftrace_syscall_exit(regs); | ||||
| #endif | ||||
| 	if (unlikely(test_thread_flag(TIF_SYSCALL_TRACEPOINT))) | ||||
| 		trace_sys_exit(regs, regs->regs[0]); | ||||
| 
 | ||||
| 	step = test_thread_flag(TIF_SINGLESTEP); | ||||
| 	if (step || test_thread_flag(TIF_SYSCALL_TRACE)) | ||||
|  | ||||
| @ -40,6 +40,9 @@ | ||||
| #include <asm/syscalls.h> | ||||
| #include <asm/fpu.h> | ||||
| 
 | ||||
| #define CREATE_TRACE_POINTS | ||||
| #include <trace/events/syscalls.h> | ||||
| 
 | ||||
| /* This mask defines the bits of the SR which the user is not allowed to
 | ||||
|    change, which are everything except S, Q, M, PR, SZ, FR. */ | ||||
| #define SR_MASK      (0xffff8cfd) | ||||
| @ -438,6 +441,9 @@ asmlinkage long long do_syscall_trace_enter(struct pt_regs *regs) | ||||
| 		 */ | ||||
| 		ret = -1LL; | ||||
| 
 | ||||
| 	if (unlikely(test_thread_flag(TIF_SYSCALL_TRACEPOINT))) | ||||
| 		trace_sys_enter(regs, regs->regs[9]); | ||||
| 
 | ||||
| 	if (unlikely(current->audit_context)) | ||||
| 		audit_syscall_entry(audit_arch(), regs->regs[1], | ||||
| 				    regs->regs[2], regs->regs[3], | ||||
| @ -452,6 +458,9 @@ asmlinkage void do_syscall_trace_leave(struct pt_regs *regs) | ||||
| 		audit_syscall_exit(AUDITSC_RESULT(regs->regs[9]), | ||||
| 				   regs->regs[9]); | ||||
| 
 | ||||
| 	if (unlikely(test_thread_flag(TIF_SYSCALL_TRACEPOINT))) | ||||
| 		trace_sys_exit(regs, regs->regs[9]); | ||||
| 
 | ||||
| 	if (test_thread_flag(TIF_SYSCALL_TRACE)) | ||||
| 		tracehook_report_syscall_exit(regs, 0); | ||||
| } | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user