csky: Fixup dead loop in show_stack
When STACKTRACE is enabled, we must pass fp as stack for unwind, otherwise random value in stack will casue a dead loop. Signed-off-by: Guo Ren <ren_guo@c-sky.com> Reported-by: Lu Baoquan <lu.baoquan@intellif.com>
This commit is contained in:
parent
76d21d186a
commit
131aee8b98
|
@ -38,7 +38,11 @@ void show_stack(struct task_struct *task, unsigned long *stack)
|
||||||
if (task)
|
if (task)
|
||||||
stack = (unsigned long *)thread_saved_fp(task);
|
stack = (unsigned long *)thread_saved_fp(task);
|
||||||
else
|
else
|
||||||
|
#ifdef CONFIG_STACKTRACE
|
||||||
|
asm volatile("mov %0, r8\n":"=r"(stack)::"memory");
|
||||||
|
#else
|
||||||
stack = (unsigned long *)&stack;
|
stack = (unsigned long *)&stack;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
show_trace(stack);
|
show_trace(stack);
|
||||||
|
|
Loading…
Reference in New Issue