From: Greg Kroah-Hartman Date: Fri, 6 Nov 2015 05:57:36 +0000 (-0800) Subject: 3.10-stable patches X-Git-Tag: v3.10.93~26 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=4bc5a47ec09d9b9fe91b0d0213a9498f2f3cea88;p=thirdparty%2Fkernel%2Fstable-queue.git 3.10-stable patches added patches: revert-arm64-unwind-fix-pc-calculation.patch --- diff --git a/queue-3.10/revert-arm64-unwind-fix-pc-calculation.patch b/queue-3.10/revert-arm64-unwind-fix-pc-calculation.patch new file mode 100644 index 00000000000..dcad31eaeec --- /dev/null +++ b/queue-3.10/revert-arm64-unwind-fix-pc-calculation.patch @@ -0,0 +1,42 @@ +From 9702970c7bd3e2d6fecb642a190269131d4ac16c Mon Sep 17 00:00:00 2001 +From: Will Deacon +Date: Wed, 28 Oct 2015 16:56:13 +0000 +Subject: Revert "ARM64: unwind: Fix PC calculation" + +From: Will Deacon + +commit 9702970c7bd3e2d6fecb642a190269131d4ac16c upstream. + +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. + +Signed-off-by: Will Deacon +Signed-off-by: Greg Kroah-Hartman + +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; + } diff --git a/queue-3.10/series b/queue-3.10/series index b9105f0af4b..fd3e04e795d 100644 --- a/queue-3.10/series +++ b/queue-3.10/series @@ -10,3 +10,4 @@ drm-nouveau-gem-return-only-valid-domain-when-there-s-only-one.patch rbd-require-stable-pages-if-message-data-crcs-are-enabled.patch rbd-don-t-leak-parent_spec-in-rbd_dev_probe_parent.patch rbd-prevent-kernel-stack-blow-up-on-rbd-map.patch +revert-arm64-unwind-fix-pc-calculation.patch