diff options
author | Will Deacon <will.deacon@arm.com> | 2015-10-28 17:56:13 +0100 |
---|---|---|
committer | Will Deacon <will.deacon@arm.com> | 2015-10-28 18:07:07 +0100 |
commit | 9702970c7bd3e2d6fecb642a190269131d4ac16c (patch) | |
tree | aa2ce8d5878c8ba7072e368062f9872437561e79 /arch | |
parent | arm64: kernel: fix tcr_el1.t0sz restore on systems with extended idmap (diff) | |
download | linux-9702970c7bd3e2d6fecb642a190269131d4ac16c.tar.xz linux-9702970c7bd3e2d6fecb642a190269131d4ac16c.zip |
Revert "ARM64: unwind: Fix PC calculation"
This reverts commit e306dfd06fcb44d21c80acb8e5a88d55f3d1cf63.
With this patch applied, we were the only architecture making this sort
of adjustment to the PC calculation in the unwinder. This causes
problems for ftrace, where the PC values are matched against the
contents of the stack frames in the callchain and fail to match any
records after the address adjustment.
Whilst there has been some effort to change ftrace to workaround this,
those patches are not yet ready for mainline and, since we're the odd
architecture in this regard, let's just step in line with other
architectures (like arch/arm/) for now.
Cc: <stable@vger.kernel.org>
Signed-off-by: Will Deacon <will.deacon@arm.com>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/arm64/kernel/stacktrace.c | 6 |
1 files changed, 1 insertions, 5 deletions
diff --git a/arch/arm64/kernel/stacktrace.c b/arch/arm64/kernel/stacktrace.c index 407991bf79f5..ccb6078ed9f2 100644 --- a/arch/arm64/kernel/stacktrace.c +++ b/arch/arm64/kernel/stacktrace.c @@ -48,11 +48,7 @@ int notrace unwind_frame(struct stackframe *frame) frame->sp = fp + 0x10; frame->fp = *(unsigned long *)(fp); - /* - * -4 here because we care about the PC at time of bl, - * not where the return will go. - */ - frame->pc = *(unsigned long *)(fp + 8) - 4; + frame->pc = *(unsigned long *)(fp + 8); return 0; } |