Re: [PATCH] nds32: ftrace: fix pointer comparison warning

From: Steven Rostedt
Date: Wed Oct 27 2021 - 07:59:42 EST


On Tue, 26 Oct 2021 22:55:54 -0700
Randy Dunlap <rdunlap@xxxxxxxxxxxxx> wrote:

> GCC 11.1.0 for nds32 (nds32le if it matters) complains:
>
> ../arch/nds32/kernel/ftrace.c: In function '_mcount':
> ../arch/nds32/kernel/ftrace.c:24:35: error: comparison of distinct pointer types lacks a cast [-Werror]
> 24 | if (ftrace_trace_function != ftrace_stub)
> | ^~
>
> Cast the second function (pointer) to (void *) to avoid the warning.
>
> Fixes: a18082575c66 ("nds32/ftrace: Support static function tracer")
> Signed-off-by: Randy Dunlap <rdunlap@xxxxxxxxxxxxx>
> Reported-by: kernel test robot <lkp@xxxxxxxxx>
> To: Greentime Hu <green.hu@xxxxxxxxx>
> Cc: Steven Rostedt (VMware) <rostedt@xxxxxxxxxxx>
> Cc: Masami Hiramatsu <mhiramat@xxxxxxxxxx>
> Cc: Zong Li <zong@xxxxxxxxxxxxx>
> Cc: Nick Hu <nickhu@xxxxxxxxxxxxx>
> Cc: Vincent Chen <deanbo422@xxxxxxxxx>
> ---
> arch/nds32/kernel/ftrace.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> --- linux-next-20211026.orig/arch/nds32/kernel/ftrace.c
> +++ linux-next-20211026/arch/nds32/kernel/ftrace.c
> @@ -21,7 +21,7 @@ noinline void _mcount(unsigned long pare
>
> unsigned long ip = (unsigned long)__builtin_return_address(0);
>
> - if (ftrace_trace_function != ftrace_stub)
> + if (ftrace_trace_function != (void *)ftrace_stub)
> ftrace_trace_function(ip - MCOUNT_INSN_SIZE, parent_ip,
> NULL, NULL);
>

Or update ftrace_trace_function prototype that was missed when ftrace_stub
prototype was updated.

Signed-off-by: Steven Rostedt (VMware) <rostedt@xxxxxxxxxxx>
---
diff --git a/arch/nds32/kernel/ftrace.c b/arch/nds32/kernel/ftrace.c
index f0ef4842d191..711bc8cd186d 100644
--- a/arch/nds32/kernel/ftrace.c
+++ b/arch/nds32/kernel/ftrace.c
@@ -6,7 +6,7 @@

#ifndef CONFIG_DYNAMIC_FTRACE
extern void (*ftrace_trace_function)(unsigned long, unsigned long,
- struct ftrace_ops*, struct pt_regs*);
+ struct ftrace_ops*, struct ftrace_regs*);
extern void ftrace_graph_caller(void);

noinline void __naked ftrace_stub(unsigned long ip, unsigned long parent_ip,