[source] kernel: Add upstream fix for module loading

LEDE Commits lede-commits at lists.infradead.org
Mon Jul 11 05:20:08 PDT 2016


blogic pushed a commit to source.git, branch master:
https://git.lede-project.org/?p=source.git;a=commitdiff;h=4ebb1950befc7a53cea0c499f3e94ef60cef4c4d

commit 4ebb1950befc7a53cea0c499f3e94ef60cef4c4d
Author: Alexey Brodkin <Alexey.Brodkin at synopsys.com>
AuthorDate: Fri Jul 8 12:57:34 2016 +0300

    kernel: Add upstream fix for module loading
    
    Instead of disabling unwinding entirely this upstream patch
    just disables generation of async unwind tables.
    
    Once the patch in question lands in stable 4.4 tree this change
    essentially must be removed (otherwise patch application will fail).
    
    Signed-off-by: Alexey Brodkin <abrodkin at synopsys.com>
---
 ...ensure-that-.debug_frame-is-generated-vs..patch | 46 ++++++++++++++++++++++
 1 file changed, 46 insertions(+)

diff --git a/target/linux/generic/patches-4.4/095-ARC-unwind-ensure-that-.debug_frame-is-generated-vs..patch b/target/linux/generic/patches-4.4/095-ARC-unwind-ensure-that-.debug_frame-is-generated-vs..patch
new file mode 100644
index 0000000..a1e287c
--- /dev/null
+++ b/target/linux/generic/patches-4.4/095-ARC-unwind-ensure-that-.debug_frame-is-generated-vs..patch
@@ -0,0 +1,46 @@
+From 23cd0de28cc7978130b770dd59b18ac143253351 Mon Sep 17 00:00:00 2001
+From: Vineet Gupta <vgupta at synopsys.com>
+Date: Tue, 28 Jun 2016 09:42:25 +0530
+Subject: [PATCH] ARC: unwind: ensure that .debug_frame is generated (vs.
+ .eh_frame)
+
+With recent binutils update to support dwarf CFI pseudo-ops in gas, we
+now get .eh_frame vs. .debug_frame. Although the call frame info is
+exactly the same in both, the CIE differs, which the current kernel
+unwinder can't cope with.
+
+This broke both the kernel unwinder as well as loadable modules (latter
+because of a new unhandled relo R_ARC_32_PCREL from .rela.eh_frame in
+the module loader)
+
+The ideal solution would be to switch unwinder to .eh_frame.
+For now however we can make do by just ensureing .debug_frame is
+generated by removing -fasynchronous-unwind-tables
+
+ .eh_frame    generated with -gdwarf-2 -fasynchronous-unwind-tables
+ .debug_frame generated with -gdwarf-2
+
+Fixes STAR 9001058196
+
+Cc: stable at vger.kernel.org
+Signed-off-by: Vineet Gupta <vgupta at synopsys.com>
+---
+ arch/arc/Makefile | 2 --
+ 1 file changed, 2 deletions(-)
+
+diff --git a/arch/arc/Makefile b/arch/arc/Makefile
+index aeb1902..209d845 100644
+--- a/arch/arc/Makefile
++++ b/arch/arc/Makefile
+@@ -48,8 +48,6 @@ endif
+ 
+ endif
+ 
+-cflags-$(CONFIG_ARC_DW2_UNWIND)		+= -fasynchronous-unwind-tables
+-
+ # By default gcc 4.8 generates dwarf4 which kernel unwinder can't grok
+ ifeq ($(atleast_gcc48),y)
+ cflags-$(CONFIG_ARC_DW2_UNWIND)		+= -gdwarf-2
+-- 
+2.5.5
+



More information about the lede-commits mailing list