summaryrefslogtreecommitdiffstats
path: root/arch/arm64/kernel/process.c
diff options
context:
space:
mode:
authorAKASHI Takahiro <takahiro.akashi@linaro.org>2015-12-15 17:33:40 +0900
committerWill Deacon <will.deacon@arm.com>2015-12-21 17:26:01 +0000
commitfe13f95b720075327a761fe6ddb45b0c90cab504 (patch)
tree60a9b93da92658289371e6bb2307401bba4bdc5e /arch/arm64/kernel/process.c
parent79fdee9b6355c9720f14717e1ad66af51bb331b5 (diff)
downloadlinux-fe13f95b720075327a761fe6ddb45b0c90cab504.tar.gz
linux-fe13f95b720075327a761fe6ddb45b0c90cab504.tar.bz2
linux-fe13f95b720075327a761fe6ddb45b0c90cab504.zip
arm64: pass a task parameter to unwind_frame()
Function graph tracer modifies a return address (LR) in a stack frame to hook a function's return. This will result in many useless entries (return_to_handler) showing up in a call stack list. We will fix this problem in a later patch ("arm64: ftrace: fix a stack tracer's output under function graph tracer"). But since real return addresses are saved in ret_stack[] array in struct task_struct, unwind functions need to be notified of, in addition to a stack pointer address, which task is being traced in order to find out real return addresses. This patch extends unwind functions' interfaces by adding an extra argument of a pointer to task_struct. Signed-off-by: AKASHI Takahiro <takahiro.akashi@linaro.org> Signed-off-by: Will Deacon <will.deacon@arm.com>
Diffstat (limited to 'arch/arm64/kernel/process.c')
-rw-r--r--arch/arm64/kernel/process.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/arm64/kernel/process.c b/arch/arm64/kernel/process.c
index f75b540bc3b4..98bf5461d4b6 100644
--- a/arch/arm64/kernel/process.c
+++ b/arch/arm64/kernel/process.c
@@ -348,7 +348,7 @@ unsigned long get_wchan(struct task_struct *p)
do {
if (frame.sp < stack_page ||
frame.sp >= stack_page + THREAD_SIZE ||
- unwind_frame(&frame))
+ unwind_frame(p, &frame))
return 0;
if (!in_sched_functions(frame.pc))
return frame.pc;