summaryrefslogtreecommitdiffstats
path: root/arch/arm64/kernel/process.c
diff options
context:
space:
mode:
authorArd Biesheuvel <ard.biesheuvel@linaro.org>2017-07-23 09:05:38 +0100
committerMark Rutland <mark.rutland@arm.com>2017-08-09 14:10:29 +0100
commit31e43ad3b74a5d7b282023b72f25fc677c14c727 (patch)
tree8329fe0b3d9d9f51f9bcc6390f9526e70b922aaf /arch/arm64/kernel/process.c
parent7326749801396105aef0ed9229df746ac9e24300 (diff)
downloadlinux-31e43ad3b74a5d7b282023b72f25fc677c14c727.tar.gz
linux-31e43ad3b74a5d7b282023b72f25fc677c14c727.tar.bz2
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.c5
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;