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

Reply via email to