[PATCH] fgraph: Make sure fregs is non-null when accessing

sunliming@linux.dev posted 1 patch 1 month ago
kernel/trace/fgraph.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
[PATCH] fgraph: Make sure fregs is non-null when accessing
Posted by sunliming@linux.dev 1 month ago
From: sunliming <sunliming@kylinos.cn>

Fix below smatch warnings:
kernel/trace/fgraph.c:834 __ftrace_return_to_handler() error: we previously
assumed 'fregs' could be null (see line 830)

Reported-by: kernel test robot <lkp@intel.com>
Reported-by: Dan Carpenter <error27@gmail.com>
Closes: https://lore.kernel.org/r/202512131657.JQUt5fXQ-lkp@intel.com/
Signed-off-by: sunliming <sunliming@kylinos.cn>
---
 kernel/trace/fgraph.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/kernel/trace/fgraph.c b/kernel/trace/fgraph.c
index cc48d16be43e..0f50a55032c5 100644
--- a/kernel/trace/fgraph.c
+++ b/kernel/trace/fgraph.c
@@ -837,7 +837,8 @@ __ftrace_return_to_handler(struct ftrace_regs *fregs, unsigned long frame_pointe
 		goto out;
 
 #ifdef CONFIG_FUNCTION_GRAPH_RETVAL
-	trace.retval = ftrace_regs_get_return_value(fregs);
+	if (fregs)
+		trace.retval = ftrace_regs_get_return_value(fregs);
 #endif
 
 	bitmap = get_bitmap_bits(current, offset);
-- 
2.25.1
Re: [PATCH] fgraph: Make sure fregs is non-null when accessing
Posted by Steven Rostedt 1 month ago
On Wed,  7 Jan 2026 09:51:25 +0800
sunliming@linux.dev wrote:

> From: sunliming <sunliming@kylinos.cn>
> 
> Fix below smatch warnings:
> kernel/trace/fgraph.c:834 __ftrace_return_to_handler() error: we previously
> assumed 'fregs' could be null (see line 830)
> 

NACK!

> Reported-by: kernel test robot <lkp@intel.com>
> Reported-by: Dan Carpenter <error27@gmail.com>
> Closes: https://lore.kernel.org/r/202512131657.JQUt5fXQ-lkp@intel.com/

Really? Did you not read this thread you are "closing"?

-- Steve

> Signed-off-by: sunliming <sunliming@kylinos.cn>
> ---
>  kernel/trace/fgraph.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/kernel/trace/fgraph.c b/kernel/trace/fgraph.c
> index cc48d16be43e..0f50a55032c5 100644
> --- a/kernel/trace/fgraph.c
> +++ b/kernel/trace/fgraph.c
> @@ -837,7 +837,8 @@ __ftrace_return_to_handler(struct ftrace_regs *fregs, unsigned long frame_pointe
>  		goto out;
>  
>  #ifdef CONFIG_FUNCTION_GRAPH_RETVAL
> -	trace.retval = ftrace_regs_get_return_value(fregs);
> +	if (fregs)
> +		trace.retval = ftrace_regs_get_return_value(fregs);
>  #endif
>  
>  	bitmap = get_bitmap_bits(current, offset);