Re: [PATCH] MIPS: Fix module.c build for 32 bit
On Tue, 14 Aug 2012 17:13:45 +0200, Ralf Baechle wrote: > Fixes build failure introduced by "Make most arch asm/module.h files use > asm-generic/module.h" by moving all the RELA processing code to a > separate file to be used only for RELA processing on 64-bit kernels. > > CC arch/mips/kernel/module.o > arch/mips/kernel/module.c:250:14: error: 'reloc_handlers_rela' defined but > not > used [-Werror=unused-variable] > cc1: all warnings being treated as errors > > make[6]: *** [arch/mips/kernel/module.o] Error 1 > > Signed-off-by: Ralf Baechle > > --- > This is bigger than Jonas' suggested patch but far less #ifdefy. > A minimal fix would be to add __maybe_unused to the definition of > reloc_handlers_rela but imho __maybe_unused should be avoided where > possible. > > I tested this on top of today's -next but ideally to keep bisectability > it should be applied early in the series before CONFIG_MODULES_USE_ELF_RELA > is introduced which would require trivial tweaking arch/mips/kernel/Makefile > tweaking. OK, as suggested, applied as a separate patch (with a bit of tweaking), and then modified David's patch to flip the condition in the Makefile. This will sit in linux-next another cycle. Cheers, Rusty. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH] MIPS: Fix module.c build for 32 bit
On Tue, 14 Aug 2012 17:13:45 +0200, Ralf Baechle r...@linux-mips.org wrote: Fixes build failure introduced by Make most arch asm/module.h files use asm-generic/module.h by moving all the RELA processing code to a separate file to be used only for RELA processing on 64-bit kernels. CC arch/mips/kernel/module.o arch/mips/kernel/module.c:250:14: error: 'reloc_handlers_rela' defined but not used [-Werror=unused-variable] cc1: all warnings being treated as errors make[6]: *** [arch/mips/kernel/module.o] Error 1 Signed-off-by: Ralf Baechle r...@linux-mips.org --- This is bigger than Jonas' suggested patch but far less #ifdefy. A minimal fix would be to add __maybe_unused to the definition of reloc_handlers_rela but imho __maybe_unused should be avoided where possible. I tested this on top of today's -next but ideally to keep bisectability it should be applied early in the series before CONFIG_MODULES_USE_ELF_RELA is introduced which would require trivial tweaking arch/mips/kernel/Makefile tweaking. OK, as suggested, applied as a separate patch (with a bit of tweaking), and then modified David's patch to flip the condition in the Makefile. This will sit in linux-next another cycle. Cheers, Rusty. -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH] MIPS: fix module.c build for 32 bit
On Wed, 15 Aug 2012 09:34:58 +0100, David Howells wrote: > Rusty Russell wrote: > > > For a build fix > > Linux hasn't pulled the asm-generic cleanup patch yet - you missed the merge > window, I think. Jonas detected the problem in linux-next. Yes, I missed the window but asked Linus to pull anyway. Was delaying for the other module patch, left it too long. This cleanup won't benefit from more stewing in linux-next, since it sat there for quite a while already. Feel free to add my Acked-by and push it straight to Linus, otherwise I'll roll them together for next window. Thanks, Rusty. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH] MIPS: fix module.c build for 32 bit
On Wed, 15 Aug 2012 09:34:58 +0100, David Howells dhowe...@redhat.com wrote: Rusty Russell ru...@rustcorp.com.au wrote: For a build fix Linux hasn't pulled the asm-generic cleanup patch yet - you missed the merge window, I think. Jonas detected the problem in linux-next. Yes, I missed the window but asked Linus to pull anyway. Was delaying for the other module patch, left it too long. This cleanup won't benefit from more stewing in linux-next, since it sat there for quite a while already. Feel free to add my Acked-by and push it straight to Linus, otherwise I'll roll them together for next window. Thanks, Rusty. -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH] MIPS: fix module.c build for 32 bit
Rusty Russell wrote: > For a build fix Linux hasn't pulled the asm-generic cleanup patch yet - you missed the merge window, I think. Jonas detected the problem in linux-next. David -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH] MIPS: fix module.c build for 32 bit
Rusty Russell ru...@rustcorp.com.au wrote: For a build fix Linux hasn't pulled the asm-generic cleanup patch yet - you missed the merge window, I think. Jonas detected the problem in linux-next. David -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH] MIPS: fix module.c build for 32 bit
On Tue, 14 Aug 2012 15:08:10 +0100, David Howells wrote: > Rusty Russell wrote: > > > Yep, thanks. And might as well sent them straight to Linus; since > > linux-next didn't catch this, there's little point baking them there if > > we have some acks. > > > > If he misses it, I'll grab them. > > It might have to wait for the next merge window. For a build fix Confused, Rusty. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH] MIPS: Fix module.c build for 32 bit
Ralf Baechle wrote: > +extern int apply_r_mips_none(struct module *me, u32 *location, Elf_Addr v); This needs to be in a header file, not a .c file. David -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[PATCH] MIPS: Fix module.c build for 32 bit
Fixes build failure introduced by "Make most arch asm/module.h files use asm-generic/module.h" by moving all the RELA processing code to a separate file to be used only for RELA processing on 64-bit kernels. CC arch/mips/kernel/module.o arch/mips/kernel/module.c:250:14: error: 'reloc_handlers_rela' defined but not used [-Werror=unused-variable] cc1: all warnings being treated as errors make[6]: *** [arch/mips/kernel/module.o] Error 1 Signed-off-by: Ralf Baechle --- This is bigger than Jonas' suggested patch but far less #ifdefy. A minimal fix would be to add __maybe_unused to the definition of reloc_handlers_rela but imho __maybe_unused should be avoided where possible. I tested this on top of today's -next but ideally to keep bisectability it should be applied early in the series before CONFIG_MODULES_USE_ELF_RELA is introduced which would require trivial tweaking arch/mips/kernel/Makefile tweaking. arch/mips/kernel/Makefile | 1 + arch/mips/kernel/module-rela.c | 145 + arch/mips/kernel/module.c | 123 +- 3 files changed, 147 insertions(+), 122 deletions(-) diff --git a/arch/mips/kernel/Makefile b/arch/mips/kernel/Makefile index fdaf65e..cd1e6c2 100644 --- a/arch/mips/kernel/Makefile +++ b/arch/mips/kernel/Makefile @@ -31,6 +31,7 @@ obj-$(CONFIG_SYNC_R4K)+= sync-r4k.o obj-$(CONFIG_STACKTRACE) += stacktrace.o obj-$(CONFIG_MODULES) += mips_ksyms.o module.o +obj-$(CONFIG_MODULES_USE_ELF_RELA) += module-rela.o obj-$(CONFIG_FUNCTION_TRACER) += mcount.o ftrace.o diff --git a/arch/mips/kernel/module-rela.c b/arch/mips/kernel/module-rela.c new file mode 100644 index 000..61d6002 --- /dev/null +++ b/arch/mips/kernel/module-rela.c @@ -0,0 +1,145 @@ +/* + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * Copyright (C) 2001 Rusty Russell. + * Copyright (C) 2003, 2004 Ralf Baechle (r...@linux-mips.org) + * Copyright (C) 2005 Thiemo Seufer + */ + +#include +#include +#include +#include + +extern int apply_r_mips_none(struct module *me, u32 *location, Elf_Addr v); + +static int apply_r_mips_32_rela(struct module *me, u32 *location, Elf_Addr v) +{ + *location = v; + + return 0; +} + +static int apply_r_mips_26_rela(struct module *me, u32 *location, Elf_Addr v) +{ + if (v % 4) { + pr_err("module %s: dangerous R_MIPS_26 RELArelocation\n", + me->name); + return -ENOEXEC; + } + + if ((v & 0xf000) != (((unsigned long)location + 4) & 0xf000)) { + printk(KERN_ERR + "module %s: relocation overflow\n", + me->name); + return -ENOEXEC; + } + + *location = (*location & ~0x03ff) | ((v >> 2) & 0x03ff); + + return 0; +} + +static int apply_r_mips_hi16_rela(struct module *me, u32 *location, Elf_Addr v) +{ + *location = (*location & 0x) | + long long) v + 0x8000LL) >> 16) & 0x); + + return 0; +} + +static int apply_r_mips_lo16_rela(struct module *me, u32 *location, Elf_Addr v) +{ + *location = (*location & 0x) | (v & 0x); + + return 0; +} + +static int apply_r_mips_64_rela(struct module *me, u32 *location, Elf_Addr v) +{ + *(Elf_Addr *)location = v; + + return 0; +} + +static int apply_r_mips_higher_rela(struct module *me, u32 *location, + Elf_Addr v) +{ + *location = (*location & 0x) | + long long) v + 0x80008000LL) >> 32) & 0x); + + return 0; +} + +static int apply_r_mips_highest_rela(struct module *me, u32 *location, +Elf_Addr v) +{ + *location = (*location & 0x) | + long long) v + 0x800080008000LL) >> 48) & 0x); + + return 0; +} + +static int (*reloc_handlers_rela[]) (struct module *me, u32 *location, + Elf_Addr v) = { + [R_MIPS_NONE] = apply_r_mips_none, + [R_MIPS_32] = apply_r_mips_32_rela, + [R_MIPS_26] = apply_r_mips_26_rela, + [R_MIPS_HI16] = apply_r_mips_hi16_rela, +
Re: [PATCH] MIPS: fix module.c build for 32 bit
Rusty Russell wrote: > Yep, thanks. And might as well sent them straight to Linus; since > linux-next didn't catch this, there's little point baking them there if > we have some acks. > > If he misses it, I'll grab them. It might have to wait for the next merge window. David -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH] MIPS: fix module.c build for 32 bit
Rusty Russell ru...@rustcorp.com.au wrote: Yep, thanks. And might as well sent them straight to Linus; since linux-next didn't catch this, there's little point baking them there if we have some acks. If he misses it, I'll grab them. It might have to wait for the next merge window. David -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[PATCH] MIPS: Fix module.c build for 32 bit
Fixes build failure introduced by Make most arch asm/module.h files use asm-generic/module.h by moving all the RELA processing code to a separate file to be used only for RELA processing on 64-bit kernels. CC arch/mips/kernel/module.o arch/mips/kernel/module.c:250:14: error: 'reloc_handlers_rela' defined but not used [-Werror=unused-variable] cc1: all warnings being treated as errors make[6]: *** [arch/mips/kernel/module.o] Error 1 Signed-off-by: Ralf Baechle r...@linux-mips.org --- This is bigger than Jonas' suggested patch but far less #ifdefy. A minimal fix would be to add __maybe_unused to the definition of reloc_handlers_rela but imho __maybe_unused should be avoided where possible. I tested this on top of today's -next but ideally to keep bisectability it should be applied early in the series before CONFIG_MODULES_USE_ELF_RELA is introduced which would require trivial tweaking arch/mips/kernel/Makefile tweaking. arch/mips/kernel/Makefile | 1 + arch/mips/kernel/module-rela.c | 145 + arch/mips/kernel/module.c | 123 +- 3 files changed, 147 insertions(+), 122 deletions(-) diff --git a/arch/mips/kernel/Makefile b/arch/mips/kernel/Makefile index fdaf65e..cd1e6c2 100644 --- a/arch/mips/kernel/Makefile +++ b/arch/mips/kernel/Makefile @@ -31,6 +31,7 @@ obj-$(CONFIG_SYNC_R4K)+= sync-r4k.o obj-$(CONFIG_STACKTRACE) += stacktrace.o obj-$(CONFIG_MODULES) += mips_ksyms.o module.o +obj-$(CONFIG_MODULES_USE_ELF_RELA) += module-rela.o obj-$(CONFIG_FUNCTION_TRACER) += mcount.o ftrace.o diff --git a/arch/mips/kernel/module-rela.c b/arch/mips/kernel/module-rela.c new file mode 100644 index 000..61d6002 --- /dev/null +++ b/arch/mips/kernel/module-rela.c @@ -0,0 +1,145 @@ +/* + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * Copyright (C) 2001 Rusty Russell. + * Copyright (C) 2003, 2004 Ralf Baechle (r...@linux-mips.org) + * Copyright (C) 2005 Thiemo Seufer + */ + +#include linux/elf.h +#include linux/err.h +#include linux/errno.h +#include linux/moduleloader.h + +extern int apply_r_mips_none(struct module *me, u32 *location, Elf_Addr v); + +static int apply_r_mips_32_rela(struct module *me, u32 *location, Elf_Addr v) +{ + *location = v; + + return 0; +} + +static int apply_r_mips_26_rela(struct module *me, u32 *location, Elf_Addr v) +{ + if (v % 4) { + pr_err(module %s: dangerous R_MIPS_26 RELArelocation\n, + me-name); + return -ENOEXEC; + } + + if ((v 0xf000) != (((unsigned long)location + 4) 0xf000)) { + printk(KERN_ERR + module %s: relocation overflow\n, + me-name); + return -ENOEXEC; + } + + *location = (*location ~0x03ff) | ((v 2) 0x03ff); + + return 0; +} + +static int apply_r_mips_hi16_rela(struct module *me, u32 *location, Elf_Addr v) +{ + *location = (*location 0x) | + long long) v + 0x8000LL) 16) 0x); + + return 0; +} + +static int apply_r_mips_lo16_rela(struct module *me, u32 *location, Elf_Addr v) +{ + *location = (*location 0x) | (v 0x); + + return 0; +} + +static int apply_r_mips_64_rela(struct module *me, u32 *location, Elf_Addr v) +{ + *(Elf_Addr *)location = v; + + return 0; +} + +static int apply_r_mips_higher_rela(struct module *me, u32 *location, + Elf_Addr v) +{ + *location = (*location 0x) | + long long) v + 0x80008000LL) 32) 0x); + + return 0; +} + +static int apply_r_mips_highest_rela(struct module *me, u32 *location, +Elf_Addr v) +{ + *location = (*location 0x) | + long long) v + 0x800080008000LL) 48) 0x); + + return 0; +} + +static int (*reloc_handlers_rela[]) (struct module *me, u32 *location, + Elf_Addr v) = { + [R_MIPS_NONE] = apply_r_mips_none, + [R_MIPS_32] = apply_r_mips_32_rela, + [R_MIPS_26] = apply_r_mips_26_rela, + [R_MIPS_HI16]
Re: [PATCH] MIPS: Fix module.c build for 32 bit
Ralf Baechle r...@linux-mips.org wrote: +extern int apply_r_mips_none(struct module *me, u32 *location, Elf_Addr v); This needs to be in a header file, not a .c file. David -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH] MIPS: fix module.c build for 32 bit
On Tue, 14 Aug 2012 15:08:10 +0100, David Howells dhowe...@redhat.com wrote: Rusty Russell ru...@rustcorp.com.au wrote: Yep, thanks. And might as well sent them straight to Linus; since linux-next didn't catch this, there's little point baking them there if we have some acks. If he misses it, I'll grab them. It might have to wait for the next merge window. For a build fix Confused, Rusty. -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH] MIPS: fix module.c build for 32 bit
On Mon, 13 Aug 2012 16:39:42 +0100, David Howells wrote: > > Hi Rusty, > > I've fixed up my patch for ARM and pulled Jonas's patch on top of that. Do > you want me to merge them together? Yep, thanks. And might as well sent them straight to Linus; since linux-next didn't catch this, there's little point baking them there if we have some acks. If he misses it, I'll grab them. Thanks, Rusty. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH] MIPS: fix module.c build for 32 bit
Hi Rusty, I've fixed up my patch for ARM and pulled Jonas's patch on top of that. Do you want me to merge them together? David -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH] MIPS: fix module.c build for 32 bit
Hi Rusty, I've fixed up my patch for ARM and pulled Jonas's patch on top of that. Do you want me to merge them together? David -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH] MIPS: fix module.c build for 32 bit
On Mon, 13 Aug 2012 16:39:42 +0100, David Howells dhowe...@redhat.com wrote: Hi Rusty, I've fixed up my patch for ARM and pulled Jonas's patch on top of that. Do you want me to merge them together? Yep, thanks. And might as well sent them straight to Linus; since linux-next didn't catch this, there's little point baking them there if we have some acks. If he misses it, I'll grab them. Thanks, Rusty. -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[PATCH] MIPS: fix module.c build for 32 bit
Fixes the following build failure introduced by "Make most arch asm/module.h files use asm-generic/module.h". CC arch/mips/kernel/module.o arch/mips/kernel/module.c:250:14: error: 'reloc_handlers_rela' defined but not used [-Werror=unused-variable] cc1: all warnings being treated as errors make[6]: *** [arch/mips/kernel/module.o] Error 1 Signed-off-by: Jonas Gorski --- I don't mind this patch being squashed into the original patch. The patch isn't in any stable git yet, so I assume any git id would be outdated soon anyway. Linus, I CC'd you because there already is a pending pull request for this patch. David, it would have been nice if the mentioned patch had made it to linux-mips. I just caught this more or less by accident by building linux-next. arch/mips/kernel/module.c | 10 ++ 1 files changed, 10 insertions(+), 0 deletions(-) diff --git a/arch/mips/kernel/module.c b/arch/mips/kernel/module.c index 1500c80..afbd717 100644 --- a/arch/mips/kernel/module.c +++ b/arch/mips/kernel/module.c @@ -65,12 +65,14 @@ static int apply_r_mips_32_rel(struct module *me, u32 *location, Elf_Addr v) return 0; } +#ifdef CONFIG_MODULES_USE_ELF_RELA static int apply_r_mips_32_rela(struct module *me, u32 *location, Elf_Addr v) { *location = v; return 0; } +#endif static int apply_r_mips_26_rel(struct module *me, u32 *location, Elf_Addr v) { @@ -93,6 +95,7 @@ static int apply_r_mips_26_rel(struct module *me, u32 *location, Elf_Addr v) return 0; } +#ifdef CONFIG_MODULES_USE_ELF_RELA static int apply_r_mips_26_rela(struct module *me, u32 *location, Elf_Addr v) { if (v % 4) { @@ -112,6 +115,7 @@ static int apply_r_mips_26_rela(struct module *me, u32 *location, Elf_Addr v) return 0; } +#endif static int apply_r_mips_hi16_rel(struct module *me, u32 *location, Elf_Addr v) { @@ -134,6 +138,7 @@ static int apply_r_mips_hi16_rel(struct module *me, u32 *location, Elf_Addr v) return 0; } +#ifdef CONFIG_MODULES_USE_ELF_RELA static int apply_r_mips_hi16_rela(struct module *me, u32 *location, Elf_Addr v) { *location = (*location & 0x) | @@ -141,6 +146,7 @@ static int apply_r_mips_hi16_rela(struct module *me, u32 *location, Elf_Addr v) return 0; } +#endif static int apply_r_mips_lo16_rel(struct module *me, u32 *location, Elf_Addr v) { @@ -206,6 +212,7 @@ out_danger: return -ENOEXEC; } +#ifdef CONFIG_MODULES_USE_ELF_RELA static int apply_r_mips_lo16_rela(struct module *me, u32 *location, Elf_Addr v) { *location = (*location & 0x) | (v & 0x); @@ -237,6 +244,7 @@ static int apply_r_mips_highest_rela(struct module *me, u32 *location, return 0; } +#endif static int (*reloc_handlers_rel[]) (struct module *me, u32 *location, Elf_Addr v) = { @@ -247,6 +255,7 @@ static int (*reloc_handlers_rel[]) (struct module *me, u32 *location, [R_MIPS_LO16] = apply_r_mips_lo16_rel }; +#ifdef CONFIG_MODULES_USE_ELF_RELA static int (*reloc_handlers_rela[]) (struct module *me, u32 *location, Elf_Addr v) = { [R_MIPS_NONE] = apply_r_mips_none, @@ -258,6 +267,7 @@ static int (*reloc_handlers_rela[]) (struct module *me, u32 *location, [R_MIPS_HIGHER] = apply_r_mips_higher_rela, [R_MIPS_HIGHEST]= apply_r_mips_highest_rela }; +#endif int apply_relocate(Elf_Shdr *sechdrs, const char *strtab, unsigned int symindex, unsigned int relsec, -- 1.7.2.5 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[PATCH] MIPS: fix module.c build for 32 bit
Fixes the following build failure introduced by Make most arch asm/module.h files use asm-generic/module.h. CC arch/mips/kernel/module.o arch/mips/kernel/module.c:250:14: error: 'reloc_handlers_rela' defined but not used [-Werror=unused-variable] cc1: all warnings being treated as errors make[6]: *** [arch/mips/kernel/module.o] Error 1 Signed-off-by: Jonas Gorski jonas.gor...@gmail.com --- I don't mind this patch being squashed into the original patch. The patch isn't in any stable git yet, so I assume any git id would be outdated soon anyway. Linus, I CC'd you because there already is a pending pull request for this patch. David, it would have been nice if the mentioned patch had made it to linux-mips. I just caught this more or less by accident by building linux-next. arch/mips/kernel/module.c | 10 ++ 1 files changed, 10 insertions(+), 0 deletions(-) diff --git a/arch/mips/kernel/module.c b/arch/mips/kernel/module.c index 1500c80..afbd717 100644 --- a/arch/mips/kernel/module.c +++ b/arch/mips/kernel/module.c @@ -65,12 +65,14 @@ static int apply_r_mips_32_rel(struct module *me, u32 *location, Elf_Addr v) return 0; } +#ifdef CONFIG_MODULES_USE_ELF_RELA static int apply_r_mips_32_rela(struct module *me, u32 *location, Elf_Addr v) { *location = v; return 0; } +#endif static int apply_r_mips_26_rel(struct module *me, u32 *location, Elf_Addr v) { @@ -93,6 +95,7 @@ static int apply_r_mips_26_rel(struct module *me, u32 *location, Elf_Addr v) return 0; } +#ifdef CONFIG_MODULES_USE_ELF_RELA static int apply_r_mips_26_rela(struct module *me, u32 *location, Elf_Addr v) { if (v % 4) { @@ -112,6 +115,7 @@ static int apply_r_mips_26_rela(struct module *me, u32 *location, Elf_Addr v) return 0; } +#endif static int apply_r_mips_hi16_rel(struct module *me, u32 *location, Elf_Addr v) { @@ -134,6 +138,7 @@ static int apply_r_mips_hi16_rel(struct module *me, u32 *location, Elf_Addr v) return 0; } +#ifdef CONFIG_MODULES_USE_ELF_RELA static int apply_r_mips_hi16_rela(struct module *me, u32 *location, Elf_Addr v) { *location = (*location 0x) | @@ -141,6 +146,7 @@ static int apply_r_mips_hi16_rela(struct module *me, u32 *location, Elf_Addr v) return 0; } +#endif static int apply_r_mips_lo16_rel(struct module *me, u32 *location, Elf_Addr v) { @@ -206,6 +212,7 @@ out_danger: return -ENOEXEC; } +#ifdef CONFIG_MODULES_USE_ELF_RELA static int apply_r_mips_lo16_rela(struct module *me, u32 *location, Elf_Addr v) { *location = (*location 0x) | (v 0x); @@ -237,6 +244,7 @@ static int apply_r_mips_highest_rela(struct module *me, u32 *location, return 0; } +#endif static int (*reloc_handlers_rel[]) (struct module *me, u32 *location, Elf_Addr v) = { @@ -247,6 +255,7 @@ static int (*reloc_handlers_rel[]) (struct module *me, u32 *location, [R_MIPS_LO16] = apply_r_mips_lo16_rel }; +#ifdef CONFIG_MODULES_USE_ELF_RELA static int (*reloc_handlers_rela[]) (struct module *me, u32 *location, Elf_Addr v) = { [R_MIPS_NONE] = apply_r_mips_none, @@ -258,6 +267,7 @@ static int (*reloc_handlers_rela[]) (struct module *me, u32 *location, [R_MIPS_HIGHER] = apply_r_mips_higher_rela, [R_MIPS_HIGHEST]= apply_r_mips_highest_rela }; +#endif int apply_relocate(Elf_Shdr *sechdrs, const char *strtab, unsigned int symindex, unsigned int relsec, -- 1.7.2.5 -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/