Re: [PATCH] NDS32: perf_event_cpu: fix 2 build errors
From: Greentime Hu
Date: Mon Sep 27 2021 - 06:06:51 EST
Randy Dunlap <rdunlap@xxxxxxxxxxxxx> 於 2021年9月26日 週日 下午1:58寫道:
>
> ../arch/nds32/kernel/perf_event_cpu.c: In function 'unwind_frame_kernel':
> ../arch/nds32/include/asm/current.h:10:13: error: '$r25' undeclared (first use in this function)
> 10 | #define tsk $r25
> ../arch/nds32/kernel/perf_event_cpu.c:1255:50: note: in expansion of macro 'tsk'
> 1255 | (tsk, &graph, frame->lp, NULL);
>
> ../arch/nds32/kernel/perf_event_cpu.c:1257:27: error: assignment to 'long unsigned int' from 'long unsigned int *' makes integer from pointer without a cast [-Werror=int-conversion]
> 1257 | frame->sp = ((unsigned long *)frame->sp) + 1;
>
> For $r25, use the register function for current() instead.
>
> Fixes: c8b34461705e ("nds32: Add perf call-graph support.")
> Signed-off-by: Randy Dunlap <rdunlap@xxxxxxxxxxxxx>
> Cc: Nickhu <nickhu@xxxxxxxxxxxxx>
> Cc: Greentime Hu <green.hu@xxxxxxxxx>
> Cc: Vincent Chen <deanbo422@xxxxxxxxx>
> ---
> Please check the frame->sp cast/arithmetic.
>
> arch/nds32/kernel/perf_event_cpu.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> --- linux-next-20210917.orig/arch/nds32/kernel/perf_event_cpu.c
> +++ linux-next-20210917/arch/nds32/kernel/perf_event_cpu.c
> @@ -1252,9 +1252,9 @@ static int unwind_frame_kernel(struct st
> */
> if (__kernel_text_address(frame->lp))
> frame->lp = ftrace_graph_ret_addr
> - (tsk, &graph, frame->lp, NULL);
> + (current, &graph, frame->lp, NULL);
>
> - frame->sp = ((unsigned long *)frame->sp) + 1;
> + frame->sp = (unsigned long)(((unsigned long *)frame->sp)) + 1;
>
> return 0;
> } else {
Loop in Alan and KC.