summaryrefslogtreecommitdiffstats
path: root/ppc64le_module_fix.patch
diff options
context:
space:
mode:
authorJosh Boyer <jwboyer@redhat.com>2014-03-06 14:35:35 -0500
committerJosh Boyer <jwboyer@redhat.com>2014-03-06 14:35:39 -0500
commit5a77287012c36ca39549f2f745d6c3a2e2879ffa (patch)
treefbddc8a370fd586af875f423195268e4b4ccc0c2 /ppc64le_module_fix.patch
parente23ada199817b855a47229107c376689af21ee8c (diff)
downloadkernel-5a77287012c36ca39549f2f745d6c3a2e2879ffa.tar.gz
kernel-5a77287012c36ca39549f2f745d6c3a2e2879ffa.tar.xz
kernel-5a77287012c36ca39549f2f745d6c3a2e2879ffa.zip
Add ppc64le support from Brent Baude (rhbz 1073102)
Diffstat (limited to 'ppc64le_module_fix.patch')
-rw-r--r--ppc64le_module_fix.patch35
1 files changed, 35 insertions, 0 deletions
diff --git a/ppc64le_module_fix.patch b/ppc64le_module_fix.patch
new file mode 100644
index 000000000..77e6f55eb
--- /dev/null
+++ b/ppc64le_module_fix.patch
@@ -0,0 +1,35 @@
+From 414794ae6a59c38f6e5793ad50df97cba3dda4e3 Mon Sep 17 00:00:00 2001
+From: Tony Breeds <tony@bakeyournoodle.com>
+Date: Thu, 30 Jan 2014 19:58:55 +1100
+Subject: [PATCH] powerpc/le: Avoid creatng R_PPC64_TOCSAVE relocations for
+ modules.
+
+When building modules with a native le toolchain the linker will
+generate R_PPC64_TOCSAVE relocations when it's safe to omit saving r2 on
+a plt call. This isn't helpful in the conext of a kernel module and the
+kernel will fail to load those modules with an error like:
+ nf_conntrack: Unknown ADD relocation: 109
+
+This patch tells the linker to avoid createing R_PPC64_TOCSAVE
+relocations allowing modules to load.
+
+Signed-off-by: Tony Breeds <tony@bakeyournoodle.com>
+---
+ arch/powerpc/Makefile | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/arch/powerpc/Makefile b/arch/powerpc/Makefile
+index 0f4344e..fff3945 100644
+--- a/arch/powerpc/Makefile
++++ b/arch/powerpc/Makefile
+@@ -74,6 +74,9 @@ override CROSS32AS += -mlittle-endian
+ LDEMULATION := lppc
+ GNUTARGET := powerpcle
+ MULTIPLEWORD := -mno-multiple
++ifeq ($(call cc-option-yn,-mno-save-toc-indirect),y)
++ KBUILD_CFLAGS_MODULE += -mno-save-toc-indirect
++endif
+ else
+ ifeq ($(call cc-option-yn,-mbig-endian),y)
+ override CC += -mbig-endian
+--