[MIPS] Simplify dump_stack()
Make dump_stack() code not depend on CONFIG_KALLSYMS. It also make prepare_frametrace() always inlined to get less false entries reported by show_raw_backtrace(). Signed-off-by: Franck Bui-Huu <vagabon.xyz@gmail.com> Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
This commit is contained in:
Родитель
6057a79876
Коммит
1666a6fc73
|
@ -158,7 +158,7 @@ static void show_stacktrace(struct task_struct *task, struct pt_regs *regs)
|
|||
show_backtrace(task, regs);
|
||||
}
|
||||
|
||||
static noinline void prepare_frametrace(struct pt_regs *regs)
|
||||
static __always_inline void prepare_frametrace(struct pt_regs *regs)
|
||||
{
|
||||
__asm__ __volatile__(
|
||||
"1: la $2, 1b\n\t"
|
||||
|
@ -200,17 +200,15 @@ void show_stack(struct task_struct *task, unsigned long *sp)
|
|||
*/
|
||||
void dump_stack(void)
|
||||
{
|
||||
unsigned long stack;
|
||||
struct pt_regs regs;
|
||||
|
||||
#ifdef CONFIG_KALLSYMS
|
||||
if (!raw_show_trace) {
|
||||
struct pt_regs regs;
|
||||
prepare_frametrace(®s);
|
||||
show_backtrace(current, ®s);
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
show_raw_backtrace(&stack);
|
||||
/*
|
||||
* Remove any garbage that may be in regs (specially func
|
||||
* addresses) to avoid show_raw_backtrace() to report them
|
||||
*/
|
||||
memset(®s, 0, sizeof(regs));
|
||||
prepare_frametrace(®s);
|
||||
show_backtrace(current, ®s);
|
||||
}
|
||||
|
||||
EXPORT_SYMBOL(dump_stack);
|
||||
|
|
Загрузка…
Ссылка в новой задаче