[PATCH] NDS32: perf_event_cpu: fix 2 build errors

From: Randy Dunlap
Date: Sun Sep 26 2021 - 02:02:36 EST


../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 {