From: Arnd Bergmann <[email protected]>
With 'make W=1', gcc warns about casts between incompatible function
types:
kernel/trace/ftrace.c:128:31: error: cast between incompatible function types
from 'void (*)(long unsigned int, long unsigned int)' to 'void (*)(long
unsigned int, long unsigned int, struct ftrace_ops *, struct ftrace_regs *)'
[-Werror=cast-function-type]
128 | #define ftrace_ops_list_func ((ftrace_func_t)ftrace_ops_no_ops)
| ^
As the commet here explains, this one was intentional, so shut up the
warning harder by using a double cast.
Signed-off-by: Arnd Bergmann <[email protected]>
---
kernel/trace/ftrace.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/kernel/trace/ftrace.c b/kernel/trace/ftrace.c
index 4d8e35575549..d8fc87a17421 100644
--- a/kernel/trace/ftrace.c
+++ b/kernel/trace/ftrace.c
@@ -125,7 +125,7 @@ static void ftrace_ops_list_func(unsigned long ip, unsigned
long parent_ip,
#else
/* See comment below, where ftrace_ops_list_func is defined */
static void ftrace_ops_no_ops(unsigned long ip, unsigned long parent_ip);
-#define ftrace_ops_list_func ((ftrace_func_t)ftrace_ops_no_ops)
+#define ftrace_ops_list_func ((ftrace_func_t)(void *)ftrace_ops_no_ops)
#endif
static inline void ftrace_ops_init(struct ftrace_ops *ops)
--
2.29.2