summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Pagano <mpagano@gentoo.org>2017-06-21 19:47:22 -0400
committerMike Pagano <mpagano@gentoo.org>2017-06-21 19:47:22 -0400
commit6e890240921b6f0e56610c4a67629f055f4ec5c6 (patch)
tree8fef5804134dcc8c3ced79639072049901fd05ff
parentlinux kernel 4.11.6 (diff)
downloadlinux-patches-6e890240921b6f0e56610c4a67629f055f4ec5c6.tar.gz
linux-patches-6e890240921b6f0e56610c4a67629f055f4ec5c6.tar.bz2
linux-patches-6e890240921b6f0e56610c4a67629f055f4ec5c6.zip
ia64: Lift the slot=2 restriction from the kernel module loader.
-rw-r--r--0000_README4
-rw-r--r--1700_ia64-fix-module-loading-for-gcc-5.4.patch66
2 files changed, 70 insertions, 0 deletions
diff --git a/0000_README b/0000_README
index 97abba66..e2adec27 100644
--- a/0000_README
+++ b/0000_README
@@ -75,6 +75,10 @@ Patch: 1510_fs-enable-link-security-restrictions-by-default.patch
From: http://sources.debian.net/src/linux/3.16.7-ckt4-3/debian/patches/debian/fs-enable-link-security-restrictions-by-default.patch/
Desc: Enable link security restrictions by default.
+Patch: 1700_ia64-fix-module-loading-for-gcc-5.4.patch
+From: http://www.kernel.org
+Desc: ia64: Lift the slot=2 restriction from the kernel module loader.
+
Patch: 2300_enable-poweroff-on-Mac-Pro-11.patch
From: http://kernel.ubuntu.com/git/ubuntu/ubuntu-xenial.git/patch/drivers/pci/quirks.c?id=5080ff61a438f3dd80b88b423e1a20791d8a774c
Desc: Workaround to enable poweroff on Mac Pro 11. See bug #601964.
diff --git a/1700_ia64-fix-module-loading-for-gcc-5.4.patch b/1700_ia64-fix-module-loading-for-gcc-5.4.patch
new file mode 100644
index 00000000..54c4bca6
--- /dev/null
+++ b/1700_ia64-fix-module-loading-for-gcc-5.4.patch
@@ -0,0 +1,66 @@
+From a25fb8508c1b80dce742dbeaa4d75a1e9f2c5617 Mon Sep 17 00:00:00 2001
+From: Sergei Trofimovich <slyfox@gentoo.org>
+Date: Mon, 1 May 2017 11:51:55 -0700
+Subject: ia64: fix module loading for gcc-5.4
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Starting from gcc-5.4+ gcc generates MLX instructions in more cases to
+refer local symbols:
+
+ https://gcc.gnu.org/PR60465
+
+That caused ia64 module loader to choke on such instructions:
+
+ fuse: invalid slot number 1 for IMM64
+
+The Linux kernel used to handle only case where relocation pointed to
+slot=2 instruction in the bundle. That limitation was fixed in linux by
+commit 9c184a073bfd ("[IA64] Fix 2.6 kernel for the new ia64 assembler")
+See
+
+ http://sources.redhat.com/bugzilla/show_bug.cgi?id=1433
+
+This change lifts the slot=2 restriction from the kernel module loader.
+
+Tested on 'fuse' and 'btrfs' kernel modules.
+
+Cc: Markus Elfring <elfring@users.sourceforge.net>
+Cc: H J Lu <hjl.tools@gmail.com>
+Cc: Fenghua Yu <fenghua.yu@intel.com>
+Cc: Andrew Morton <akpm@linux-foundation.org>
+Bug: https://bugs.gentoo.org/601014
+Tested-by: Émeric MASCHINO <emeric.maschino@gmail.com>
+Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
+Signed-off-by: Tony Luck <tony.luck@intel.com>
+Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
+---
+ arch/ia64/kernel/module.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/arch/ia64/kernel/module.c b/arch/ia64/kernel/module.c
+index 6ab0ae7..d1d945c 100644
+--- a/arch/ia64/kernel/module.c
++++ b/arch/ia64/kernel/module.c
+@@ -153,7 +153,7 @@ slot (const struct insn *insn)
+ static int
+ apply_imm64 (struct module *mod, struct insn *insn, uint64_t val)
+ {
+- if (slot(insn) != 2) {
++ if (slot(insn) != 1 && slot(insn) != 2) {
+ printk(KERN_ERR "%s: invalid slot number %d for IMM64\n",
+ mod->name, slot(insn));
+ return 0;
+@@ -165,7 +165,7 @@ apply_imm64 (struct module *mod, struct insn *insn, uint64_t val)
+ static int
+ apply_imm60 (struct module *mod, struct insn *insn, uint64_t val)
+ {
+- if (slot(insn) != 2) {
++ if (slot(insn) != 1 && slot(insn) != 2) {
+ printk(KERN_ERR "%s: invalid slot number %d for IMM60\n",
+ mod->name, slot(insn));
+ return 0;
+--
+cgit v1.1
+