diff --git a/arch/x86/kernel/process.c b/arch/x86/kernel/process.c index 2fe1810e922a9..266962547b58c 100644 --- a/arch/x86/kernel/process.c +++ b/arch/x86/kernel/process.c @@ -43,7 +43,6 @@ #include #include #include -#include #include "process.h" @@ -946,20 +945,10 @@ unsigned long arch_randomize_brk(struct mm_struct *mm) */ unsigned long __get_wchan(struct task_struct *p) { - struct unwind_state state; - unsigned long addr = 0; + unsigned long entry = 0; - for (unwind_start(&state, p, NULL, NULL); !unwind_done(&state); - unwind_next_frame(&state)) { - addr = unwind_get_return_address(&state); - if (!addr) - break; - if (in_sched_functions(addr)) - continue; - break; - } - - return addr; + stack_trace_save_tsk(p, &entry, 1, 0); + return entry; } long do_arch_prctl_common(struct task_struct *task, int option,