tracing: avoid missing-prototype warnings
PATCH 1/1 tracing: avoid missing-prototype warnings
From: Arnd Bergmann <[email protected]>
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.
--- arch/arm64/include/asm/ftrace.h | 4 ++++ arch/arm64/include/asm/syscall.h | 3 +++ arch/arm64/kernel/syscall.c | 3 --- include/linux/ftrace.h | 3 +++ kernel/trace/fgraph.c | 1 + kernel/trace/ftrace_internal.h | 5 +++-- kernel/trace/trace_kprobe_selftest.c | 3 +++ 7 files changed, 17 insertions(+), 5 deletions(-)
arch/arm64/include/asm/ftrace.h +4 -0
@@ -190,6 +190,10 @@ static inline bool arch_syscall_match_sym_name(const char *sym,*/ return !strcmp (sym +8 , name); } + +void prepare_ftrace_return (unsigned long self_addr,unsigned long *parent, +unsigned long frame_pointer); +#endif /* ifndef __ASSEMBLY__ */ #endif /* __ASM_FTRACE_H */
arch/arm64/include/asm/syscall.h +3 -0
@@ -85,4 +85,7 @@ static inline int syscall_get_arch(struct task_struct *task) return AUDIT_ARCH_AARCH64; } +int syscall_trace_enter (struct pt_regs *regs); +void syscall_trace_exit (struct pt_regs *regs); +#endif /* __ASM_SYSCALL_H */
arch/arm64/kernel/syscall.c +0 -3
@@ -75,9 +75,6 @@ static inline bool has_syscall_work(unsigned long flags)return unlikely (flags & _TIF_SYSCALL_WORK); } -int syscall_trace_enter (struct pt_regs *regs); -void syscall_trace_exit (struct pt_regs *regs); -static void el0_svc_common (struct pt_regs *regs,int scno,int sc_nr,const syscall_fn_t syscall_table[]) {
include/linux/ftrace.h +3 -0
@@ -41,6 +41,9 @@ struct ftrace_ops;struct ftrace_regs ;struct dyn_ftrace ; +char *arch_ftrace_match_adjust (char *str,const char *search); +unsigned long ftrace_return_to_handler (unsigned long frame_pointer); +#ifdef CONFIG_FUNCTION_TRACER /* * If the arch's mcount caller does not support all of ftrace's
kernel/trace/fgraph.c +1 -0
@@ -15,6 +15,7 @@#include <trace/events/sched.h> #include "ftrace_internal.h" +#include "trace.h" #ifdef CONFIG_DYNAMIC_FTRACE #define ASSIGN_OPS_HASH (opsname, val) \
kernel/trace/ftrace_internal.h +3 -2
@@ -2,6 +2,9 @@#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;
@@ -15,8 +18,6 @@ int ftrace_ops_test(struct ftrace_ops *ops, unsigned long ip, void *regs);#else /* !CONFIG_DYNAMIC_FTRACE */ -int __register_ftrace_function (struct ftrace_ops *ops); -int __unregister_ftrace_function (struct ftrace_ops *ops);/* Keep as macros so we do not need to define the commands */ # define ftrace_startup (ops, command) \ ({ \
kernel/trace/trace_kprobe_selftest.c +3 -0
@@ -1,4 +1,7 @@// SPDX-License-Identifier: GPL-2.0 + +#include "trace_kprobe_selftest.h" +/* * Function used during the kprobe self test. This function is in a separate * compile unit so it can be compile with CC_FLAGS_FTRACE to ensure that it
Signature · 1 line
2.39.2
Quoted 16 lines · Arnd Bergmann
From: Arnd Bergmann <[email protected]>
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]
Quoted 5 lines
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.
Signed-off-by Arnd Bergmann <[email protected]>