Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1757188AbdCUIbu (ORCPT ); Tue, 21 Mar 2017 04:31:50 -0400 Received: from mail-yw0-f194.google.com ([209.85.161.194]:35148 "EHLO mail-yw0-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1757010AbdCUIbs (ORCPT ); Tue, 21 Mar 2017 04:31:48 -0400 MIME-Version: 1.0 In-Reply-To: <20170319162019.7350-1-slyfox@gentoo.org> References: <20170319162019.7350-1-slyfox@gentoo.org> From: =?UTF-8?Q?=C3=89meric_MASCHINO?= Date: Tue, 21 Mar 2017 09:31:23 +0100 Message-ID: Subject: Re: [PATCH] ia64: fix module loading for gcc-5.4 To: Sergei Trofimovich Cc: Tony Luck , "H . J . Lu" , Fenghua Yu , "linux-ia64@vger.kernel.org" , "linux-kernel@vger.kernel.org" Content-Type: text/plain; charset=UTF-8 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Transfer-Encoding: 8bit X-MIME-Autoconverted: from quoted-printable to 8bit by mail.home.local id v2L8Vx3F004869 Content-Length: 2478 Lines: 71 Hi, Backported and successfully tested on currently stable Gentoo kernel 4.9.6-r1. >From [1], gcc 4.9.4 was first problematic release. [1] http://marc.info/?l=linux-ia64&m=147993347915422 Émeric 2017-03-19 17:20 GMT+01:00 Sergei Trofimovich : > Starting from gcc-5.4+ gcc geperates MLX > instructions in more cases to refer local > symbols: > https://gcc.gnu.org/bugzilla/60465 > > That caused ia64 module loader to choke > on such instructions: > fuse: invalid slot number 1 for IMM64 > > Linux kernel used to handle only case where > relocation pointed to slot=2 instruction in > the bundle. That limitation was fixed in linux > by 9c184a073bfd650cc791956d6ca79725bb682716 commit. > See http://sources.redhat.com/bugzilla/show_bug.cgi?id=1433 > > This change lifts the slot=2 restriction from > linux kernel module loader. > > Tested on 'fuse' and 'btrfs' kernel modules. > > Cc: H. J. Lu > Cc: Tony Luck > Cc: Fenghua Yu > Cc: linux-ia64@vger.kernel.org > Cc: linux-kernel@vger.kernel.org > Bug: https://bugs.gentoo.org/601014 > Signed-off-by: Sergei Trofimovich > --- > 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 6ab0ae7d6535..d1d945c6bd05 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; > -- > 2.12.0 > > -- > To unsubscribe from this list: send the line "unsubscribe linux-ia64" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html