]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
4.14-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 5 Aug 2020 14:35:51 +0000 (16:35 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 5 Aug 2020 14:35:51 +0000 (16:35 +0200)
added patches:
arm-8702-1-head-common.s-clear-lr-before-jumping-to-start_kernel.patch

queue-4.14/arm-8702-1-head-common.s-clear-lr-before-jumping-to-start_kernel.patch [new file with mode: 0644]
queue-4.14/series

diff --git a/queue-4.14/arm-8702-1-head-common.s-clear-lr-before-jumping-to-start_kernel.patch b/queue-4.14/arm-8702-1-head-common.s-clear-lr-before-jumping-to-start_kernel.patch
new file mode 100644 (file)
index 0000000..405a6ad
--- /dev/null
@@ -0,0 +1,45 @@
+From 59b6359dd92d18f5dc04b14a4c926fa08ab66f7c Mon Sep 17 00:00:00 2001
+From: Geert Uytterhoeven <geert@linux-m68k.org>
+Date: Tue, 3 Oct 2017 19:14:38 +0100
+Subject: ARM: 8702/1: head-common.S: Clear lr before jumping to start_kernel()
+
+From: Geert Uytterhoeven <geert@linux-m68k.org>
+
+commit 59b6359dd92d18f5dc04b14a4c926fa08ab66f7c upstream.
+
+If CONFIG_DEBUG_LOCK_ALLOC=y, the kernel log is spammed with a few
+hundred identical messages:
+
+    unwind: Unknown symbol address c0800300
+    unwind: Index not found c0800300
+
+c0800300 is the return address from the last subroutine call (to
+__memzero()) in __mmap_switched().  Apparently having this address in
+the link register confuses the unwinder.
+
+To fix this, reset the link register to zero before jumping to
+start_kernel().
+
+Fixes: 9520b1a1b5f7a348 ("ARM: head-common.S: speed up startup code")
+Suggested-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
+Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
+Acked-by: Nicolas Pitre <nico@linaro.org>
+Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+Signed-off-by: Nick Desaulniers <ndesaulniers@google.com>
+
+---
+ arch/arm/kernel/head-common.S |    1 +
+ 1 file changed, 1 insertion(+)
+
+--- a/arch/arm/kernel/head-common.S
++++ b/arch/arm/kernel/head-common.S
+@@ -101,6 +101,7 @@ __mmap_switched:
+       str     r2, [r6]                        @ Save atags pointer
+       cmp     r7, #0
+       strne   r0, [r7]                        @ Save control register values
++      mov     lr, #0
+       b       start_kernel
+ ENDPROC(__mmap_switched)
index aca1e7a717deffb389449417351a787db7ac2c69..ffb8c559293c0bfe209a636b38b14822b828c1e5 100644 (file)
@@ -5,3 +5,4 @@ random-fix-circular-include-dependency-on-arm64-after-addition-of-percpu.h.patch
 random32-remove-net_rand_state-from-the-latent-entropy-gcc-plugin.patch
 random32-move-the-pseudo-random-32-bit-definitions-to-prandom.h.patch
 ext4-fix-direct-i-o-read-error.patch
+arm-8702-1-head-common.s-clear-lr-before-jumping-to-start_kernel.patch