firmware/br-ext-chip-allwinner/board/v83x/kernel/patches/00000-arch_arm64_kernel_sta...

31 lines
872 B
Diff

diff -drupN a/arch/arm64/kernel/stacktrace.c b/arch/arm64/kernel/stacktrace.c
--- a/arch/arm64/kernel/stacktrace.c 2018-08-06 17:23:04.000000000 +0300
+++ b/arch/arm64/kernel/stacktrace.c 2022-06-12 05:28:14.000000000 +0300
@@ -22,6 +22,7 @@
#include <linux/stacktrace.h>
#include <asm/irq.h>
+#include <asm/stack_pointer.h>
#include <asm/stacktrace.h>
/*
@@ -186,6 +187,9 @@ void save_stack_trace_tsk(struct task_st
struct stack_trace_data data;
struct stackframe frame;
+ if (!try_get_task_stack(tsk))
+ return;
+
data.trace = trace;
data.skip = trace->skip;
@@ -207,6 +211,8 @@ void save_stack_trace_tsk(struct task_st
walk_stackframe(tsk, &frame, save_trace, &data);
if (trace->nr_entries < trace->max_entries)
trace->entries[trace->nr_entries++] = ULONG_MAX;
+
+ put_task_stack(tsk);
}
void save_stack_trace(struct stack_trace *trace)