aboutsummaryrefslogtreecommitdiffstats
path: root/common/recipes-kernel/linux/linux-yocto-4.9.21/0002-complete-e390f9a-port-for-v4.9.106.patch
diff options
context:
space:
mode:
Diffstat (limited to 'common/recipes-kernel/linux/linux-yocto-4.9.21/0002-complete-e390f9a-port-for-v4.9.106.patch')
-rw-r--r--common/recipes-kernel/linux/linux-yocto-4.9.21/0002-complete-e390f9a-port-for-v4.9.106.patch69
1 files changed, 69 insertions, 0 deletions
diff --git a/common/recipes-kernel/linux/linux-yocto-4.9.21/0002-complete-e390f9a-port-for-v4.9.106.patch b/common/recipes-kernel/linux/linux-yocto-4.9.21/0002-complete-e390f9a-port-for-v4.9.106.patch
new file mode 100644
index 00000000..dbde0c07
--- /dev/null
+++ b/common/recipes-kernel/linux/linux-yocto-4.9.21/0002-complete-e390f9a-port-for-v4.9.106.patch
@@ -0,0 +1,69 @@
+From 22510b00481d95adc62292797fe98fbfe215a649 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Philip=20M=C3=BCller?= <philm@manjaro.org>
+Date: Sat, 9 Jun 2018 13:42:05 +0200
+Subject: [PATCH 02/10] complete e390f9a port for v4.9.106
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+objtool ports introduced in v4.9.106 were not totally complete. Therefore
+they resulted in issues like:
+
+ module: overflow in relocation type 10 val XXXXXXXXXXX
+ ‘usbcore’ likely not compiled with -mcmodel=kernel
+ module: overflow in relocation type 10 val XXXXXXXXXXX
+ ‘scsi_mod’ likely not compiled with -mcmodel=kernel
+
+Missing part was the complete backport of commit e390f9a.
+
+Original notes by Josh Poimboeuf:
+
+The '__unreachable' and '__func_stack_frame_non_standard' sections are
+only used at compile time. They're discarded for vmlinux but they
+should also be discarded for modules.
+
+Since this is a recurring pattern, prefix the section names with
+".discard.". It's a nice convention and vmlinux.lds.h already discards
+such sections.
+
+Also remove the 'a' (allocatable) flag from the __unreachable section
+since it doesn't make sense for a discarded section.
+
+Signed-off-by: Philip Müller <philm@manjaro.org>
+Fixes: d1091c7fa3d5 ("objtool: Improve detection of BUG() and other dead ends")
+Link: https://gitlab.manjaro.org/packages/core/linux49/issues/2
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ arch/x86/kernel/vmlinux.lds.S | 2 --
+ include/linux/compiler-gcc.h | 2 +-
+ 2 files changed, 1 insertion(+), 3 deletions(-)
+
+diff --git a/arch/x86/kernel/vmlinux.lds.S b/arch/x86/kernel/vmlinux.lds.S
+index 4ef267f..e783a5d 100644
+--- a/arch/x86/kernel/vmlinux.lds.S
++++ b/arch/x86/kernel/vmlinux.lds.S
+@@ -352,8 +352,6 @@ SECTIONS
+ DISCARDS
+ /DISCARD/ : {
+ *(.eh_frame)
+- *(__func_stack_frame_non_standard)
+- *(__unreachable)
+ }
+ }
+
+diff --git a/include/linux/compiler-gcc.h b/include/linux/compiler-gcc.h
+index b69d102..b62cfb9 100644
+--- a/include/linux/compiler-gcc.h
++++ b/include/linux/compiler-gcc.h
+@@ -202,7 +202,7 @@
+ #ifdef CONFIG_STACK_VALIDATION
+ #define annotate_unreachable() ({ \
+ asm("1:\t\n" \
+- ".pushsection __unreachable, \"a\"\t\n" \
++ ".pushsection .discard.unreachable\t\n" \
+ ".long 1b\t\n" \
+ ".popsection\t\n"); \
+ })
+--
+2.7.4
+