mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-04 10:40:15 +02:00 
			
		
		
		
	These are all tracing W=1 warnings in arm64 allmodconfig about missing prototypes: kernel/trace/trace_kprobe_selftest.c:7:5: error: no previous prototype for 'kprobe_trace_selftest_target' [-Werror=missing-pro totypes] kernel/trace/ftrace.c:329:5: error: no previous prototype for '__register_ftrace_function' [-Werror=missing-prototypes] kernel/trace/ftrace.c:372:5: error: no previous prototype for '__unregister_ftrace_function' [-Werror=missing-prototypes] kernel/trace/ftrace.c:4130:15: error: no previous prototype for 'arch_ftrace_match_adjust' [-Werror=missing-prototypes] kernel/trace/fgraph.c:243:15: error: no previous prototype for 'ftrace_return_to_handler' [-Werror=missing-prototypes] kernel/trace/fgraph.c:358:6: error: no previous prototype for 'ftrace_graph_sleep_time_control' [-Werror=missing-prototypes] arch/arm64/kernel/ftrace.c:460:6: error: no previous prototype for 'prepare_ftrace_return' [-Werror=missing-prototypes] arch/arm64/kernel/ptrace.c:2172:5: error: no previous prototype for 'syscall_trace_enter' [-Werror=missing-prototypes] arch/arm64/kernel/ptrace.c:2195:6: error: no previous prototype for 'syscall_trace_exit' [-Werror=missing-prototypes] Move the declarations to an appropriate header where they can be seen by the caller and callee, and make sure the headers are included where needed. Link: https://lore.kernel.org/linux-trace-kernel/20230517125215.930689-1-arnd@kernel.org Cc: Masami Hiramatsu <mhiramat@kernel.org> Cc: Mark Rutland <mark.rutland@arm.com> Cc: Will Deacon <will@kernel.org> Cc: Kees Cook <keescook@chromium.org> Cc: Florent Revest <revest@chromium.org> Signed-off-by: Arnd Bergmann <arnd@arndb.de> Acked-by: Catalin Marinas <catalin.marinas@arm.com> [ Fixed ftrace_return_to_handler() to handle CONFIG_HAVE_FUNCTION_GRAPH_RETVAL case ] Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
		
			
				
	
	
		
			54 lines
		
	
	
	
		
			1.5 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			54 lines
		
	
	
	
		
			1.5 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
/* SPDX-License-Identifier: GPL-2.0 */
 | 
						|
#ifndef _LINUX_KERNEL_FTRACE_INTERNAL_H
 | 
						|
#define  _LINUX_KERNEL_FTRACE_INTERNAL_H
 | 
						|
 | 
						|
int __register_ftrace_function(struct ftrace_ops *ops);
 | 
						|
int __unregister_ftrace_function(struct ftrace_ops *ops);
 | 
						|
 | 
						|
#ifdef CONFIG_FUNCTION_TRACER
 | 
						|
 | 
						|
extern struct mutex ftrace_lock;
 | 
						|
extern struct ftrace_ops global_ops;
 | 
						|
 | 
						|
#ifdef CONFIG_DYNAMIC_FTRACE
 | 
						|
 | 
						|
int ftrace_startup(struct ftrace_ops *ops, int command);
 | 
						|
int ftrace_shutdown(struct ftrace_ops *ops, int command);
 | 
						|
int ftrace_ops_test(struct ftrace_ops *ops, unsigned long ip, void *regs);
 | 
						|
 | 
						|
#else /* !CONFIG_DYNAMIC_FTRACE */
 | 
						|
 | 
						|
/* Keep as macros so we do not need to define the commands */
 | 
						|
# define ftrace_startup(ops, command)					\
 | 
						|
	({								\
 | 
						|
		int ___ret = __register_ftrace_function(ops);		\
 | 
						|
		if (!___ret)						\
 | 
						|
			(ops)->flags |= FTRACE_OPS_FL_ENABLED;		\
 | 
						|
		___ret;							\
 | 
						|
	})
 | 
						|
# define ftrace_shutdown(ops, command)					\
 | 
						|
	({								\
 | 
						|
		int ___ret = __unregister_ftrace_function(ops);		\
 | 
						|
		if (!___ret)						\
 | 
						|
			(ops)->flags &= ~FTRACE_OPS_FL_ENABLED;		\
 | 
						|
		___ret;							\
 | 
						|
	})
 | 
						|
static inline int
 | 
						|
ftrace_ops_test(struct ftrace_ops *ops, unsigned long ip, void *regs)
 | 
						|
{
 | 
						|
	return 1;
 | 
						|
}
 | 
						|
#endif /* CONFIG_DYNAMIC_FTRACE */
 | 
						|
 | 
						|
#ifdef CONFIG_FUNCTION_GRAPH_TRACER
 | 
						|
extern int ftrace_graph_active;
 | 
						|
void update_function_graph_func(void);
 | 
						|
#else /* !CONFIG_FUNCTION_GRAPH_TRACER */
 | 
						|
# define ftrace_graph_active 0
 | 
						|
static inline void update_function_graph_func(void) { }
 | 
						|
#endif /* CONFIG_FUNCTION_GRAPH_TRACER */
 | 
						|
 | 
						|
#else /* !CONFIG_FUNCTION_TRACER */
 | 
						|
#endif /* CONFIG_FUNCTION_TRACER */
 | 
						|
 | 
						|
#endif
 |