diff options
author | Ard Biesheuvel <ard.biesheuvel@linaro.org> | 2017-07-23 10:05:38 +0200 |
---|---|---|
committer | Mark Rutland <mark.rutland@arm.com> | 2017-08-09 15:10:29 +0200 |
commit | 31e43ad3b74a5d7b282023b72f25fc677c14c727 (patch) | |
tree | 8329fe0b3d9d9f51f9bcc6390f9526e70b922aaf /arch/arm64/kernel/process.c | |
parent | arm64: unwind: reference pt_regs via embedded stack frame (diff) | |
download | linux-31e43ad3b74a5d7b282023b72f25fc677c14c727.tar.xz linux-31e43ad3b74a5d7b282023b72f25fc677c14c727.zip |
arm64: unwind: remove sp from struct stackframe
The unwind code sets the sp member of struct stackframe to
'frame pointer + 0x10' unconditionally, without regard for whether
doing so produces a legal value. So let's simply remove it now that
we have stopped using it anyway.
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Signed-off-by: Mark Rutland <mark.rutland@arm.com>
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: James Morse <james.morse@arm.com>
Cc: Will Deacon <will.deacon@arm.com>
Diffstat (limited to 'arch/arm64/kernel/process.c')
-rw-r--r-- | arch/arm64/kernel/process.c | 5 |
1 files changed, 1 insertions, 4 deletions
diff --git a/arch/arm64/kernel/process.c b/arch/arm64/kernel/process.c index 659ae8094ed5..85b953dd023a 100644 --- a/arch/arm64/kernel/process.c +++ b/arch/arm64/kernel/process.c @@ -382,15 +382,12 @@ unsigned long get_wchan(struct task_struct *p) return 0; frame.fp = thread_saved_fp(p); - frame.sp = thread_saved_sp(p); frame.pc = thread_saved_pc(p); #ifdef CONFIG_FUNCTION_GRAPH_TRACER frame.graph = p->curr_ret_stack; #endif do { - if (frame.sp < stack_page || - frame.sp >= stack_page + THREAD_SIZE || - unwind_frame(p, &frame)) + if (unwind_frame(p, &frame)) goto out; if (!in_sched_functions(frame.pc)) { ret = frame.pc; |