diff options
-rw-r--r-- | 0000_README | 4 | ||||
-rw-r--r-- | 1700_ia64-fix-module-loading-for-gcc-5.4.patch | 66 |
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 + |