[PATCH] csky: stacktrace: fix usage of ftrace_graph_ret_addr()

Puranjay Mohan posted 1 patch 1 year, 7 months ago
arch/csky/kernel/stacktrace.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
[PATCH] csky: stacktrace: fix usage of ftrace_graph_ret_addr()
Posted by Puranjay Mohan 1 year, 7 months ago
ftrace_graph_ret_addr() now returns the passed in return address when NULL
is passed for the 'idx' paramenter. This breaks the current usage in csky's
walk_stackframe()

Fix this by passing a valid integer pointer to ftrace_graph_ret_addr()

Signed-off-by: Puranjay Mohan <puranjay@kernel.org>
---
 arch/csky/kernel/stacktrace.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/arch/csky/kernel/stacktrace.c b/arch/csky/kernel/stacktrace.c
index 27ecd63e321b..1d72f18064c2 100644
--- a/arch/csky/kernel/stacktrace.c
+++ b/arch/csky/kernel/stacktrace.c
@@ -17,6 +17,7 @@ void notrace walk_stackframe(struct task_struct *task, struct pt_regs *regs,
 			     bool (*fn)(unsigned long, void *), void *arg)
 {
 	unsigned long fp, sp, pc;
+	int graph_idx = 0;
 
 	if (regs) {
 		fp = frame_pointer(regs);
@@ -50,7 +51,7 @@ void notrace walk_stackframe(struct task_struct *task, struct pt_regs *regs,
 		frame = (struct stackframe *)fp;
 		sp = fp;
 		fp = frame->fp;
-		pc = ftrace_graph_ret_addr(current, NULL, frame->ra,
+		pc = ftrace_graph_ret_addr(current, &graph_idx, frame->ra,
 					   (unsigned long *)(fp - 8));
 	}
 }
-- 
2.40.1
Re: [PATCH] csky: stacktrace: fix usage of ftrace_graph_ret_addr()
Posted by Guo Ren 1 year, 7 months ago
On Wed, Jun 19, 2024 at 3:31 PM Puranjay Mohan <puranjay@kernel.org> wrote:
>
> ftrace_graph_ret_addr() now returns the passed in return address when NULL
> is passed for the 'idx' paramenter. This breaks the current usage in csky's
> walk_stackframe()
>
> Fix this by passing a valid integer pointer to ftrace_graph_ret_addr()
>
> Signed-off-by: Puranjay Mohan <puranjay@kernel.org>
LGTM, Thx!

Reviewed-by: Guo Ren <guoren@kernel.org>

> ---
>  arch/csky/kernel/stacktrace.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/arch/csky/kernel/stacktrace.c b/arch/csky/kernel/stacktrace.c
> index 27ecd63e321b..1d72f18064c2 100644
> --- a/arch/csky/kernel/stacktrace.c
> +++ b/arch/csky/kernel/stacktrace.c
> @@ -17,6 +17,7 @@ void notrace walk_stackframe(struct task_struct *task, struct pt_regs *regs,
>                              bool (*fn)(unsigned long, void *), void *arg)
>  {
>         unsigned long fp, sp, pc;
> +       int graph_idx = 0;
>
>         if (regs) {
>                 fp = frame_pointer(regs);
> @@ -50,7 +51,7 @@ void notrace walk_stackframe(struct task_struct *task, struct pt_regs *regs,
>                 frame = (struct stackframe *)fp;
>                 sp = fp;
>                 fp = frame->fp;
> -               pc = ftrace_graph_ret_addr(current, NULL, frame->ra,
> +               pc = ftrace_graph_ret_addr(current, &graph_idx, frame->ra,
>                                            (unsigned long *)(fp - 8));
>         }
>  }
> --
> 2.40.1
>


-- 
Best Regards
 Guo Ren