Re: [PATCH] ARM: module: fix modsign build error
+++ Russell King - ARM Linux [06/07/18 14:00 +0100]: On Fri, Jul 06, 2018 at 02:48:47PM +0200, Arnd Bergmann wrote: The asm/module.h header file can not be included standalone, which breaks the module signing code after a recent change: In file included from kernel/module-internal.h:13, from kernel/module_signing.c:17: arch/arm/include/asm/module.h:37:27: error: 'struct module' declared inside parameter list will not be visible outside of this definition or declaration [-Werror] u32 get_module_plt(struct module *mod, unsigned long loc, Elf32_Addr val); This adds a forward declaration of struct module to make it all work. Fixes: f314dfea16a0 ("modsign: log module name in the event of an error") Signed-off-by: Arnd Bergmann We used to have a general rule that where an asm/foo.h header and linux/foo.h header exists, and the linux/foo.h includes the asm/foo.h, then the linux/foo.h header will be used for including in .c files rather than the asm/ version of the same. Is there a reason why that can't be done here? Generally yes, it's just that in this case module_signing.c neither needs nor includes linux/module.h. The needed load_info struct definition just requires definitions for Elf_[SPE]hdr, Elf_Addr, Elf_Sym, etc. and those are all defined in asm/module.h. That said, adding this is no bad thing. Acked-by: Russell King Thanks. Thanks! Queued in modules-next. Jessica
Re: [PATCH] ARM: module: fix modsign build error
+++ Russell King - ARM Linux [06/07/18 14:00 +0100]: On Fri, Jul 06, 2018 at 02:48:47PM +0200, Arnd Bergmann wrote: The asm/module.h header file can not be included standalone, which breaks the module signing code after a recent change: In file included from kernel/module-internal.h:13, from kernel/module_signing.c:17: arch/arm/include/asm/module.h:37:27: error: 'struct module' declared inside parameter list will not be visible outside of this definition or declaration [-Werror] u32 get_module_plt(struct module *mod, unsigned long loc, Elf32_Addr val); This adds a forward declaration of struct module to make it all work. Fixes: f314dfea16a0 ("modsign: log module name in the event of an error") Signed-off-by: Arnd Bergmann We used to have a general rule that where an asm/foo.h header and linux/foo.h header exists, and the linux/foo.h includes the asm/foo.h, then the linux/foo.h header will be used for including in .c files rather than the asm/ version of the same. Is there a reason why that can't be done here? Generally yes, it's just that in this case module_signing.c neither needs nor includes linux/module.h. The needed load_info struct definition just requires definitions for Elf_[SPE]hdr, Elf_Addr, Elf_Sym, etc. and those are all defined in asm/module.h. That said, adding this is no bad thing. Acked-by: Russell King Thanks. Thanks! Queued in modules-next. Jessica
Re: [PATCH] ARM: module: fix modsign build error
On Fri, Jul 06, 2018 at 02:48:47PM +0200, Arnd Bergmann wrote: > The asm/module.h header file can not be included standalone, which > breaks the module signing code after a recent change: > > In file included from kernel/module-internal.h:13, > from kernel/module_signing.c:17: > arch/arm/include/asm/module.h:37:27: error: 'struct module' declared inside > parameter list will not be visible outside of this definition or declaration > [-Werror] > u32 get_module_plt(struct module *mod, unsigned long loc, Elf32_Addr val); > > This adds a forward declaration of struct module to make it all work. > > Fixes: f314dfea16a0 ("modsign: log module name in the event of an error") > Signed-off-by: Arnd Bergmann We used to have a general rule that where an asm/foo.h header and linux/foo.h header exists, and the linux/foo.h includes the asm/foo.h, then the linux/foo.h header will be used for including in .c files rather than the asm/ version of the same. Is there a reason why that can't be done here? That said, adding this is no bad thing. Acked-by: Russell King Thanks. > --- > I guess it would be useful if Jessica can pick this change up > in her tree that introduced the warning. > --- > arch/arm/include/asm/module.h | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/arch/arm/include/asm/module.h b/arch/arm/include/asm/module.h > index 89ad0596033a..9e81b7c498d8 100644 > --- a/arch/arm/include/asm/module.h > +++ b/arch/arm/include/asm/module.h > @@ -34,6 +34,7 @@ struct mod_arch_specific { > #endif > }; > > +struct module; > u32 get_module_plt(struct module *mod, unsigned long loc, Elf32_Addr val); > > /* > -- > 2.9.0 > -- RMK's Patch system: http://www.armlinux.org.uk/developer/patches/ FTTC broadband for 0.8mile line in suburbia: sync at 13.8Mbps down 630kbps up According to speedtest.net: 13Mbps down 490kbps up
Re: [PATCH] ARM: module: fix modsign build error
On Fri, Jul 06, 2018 at 02:48:47PM +0200, Arnd Bergmann wrote: > The asm/module.h header file can not be included standalone, which > breaks the module signing code after a recent change: > > In file included from kernel/module-internal.h:13, > from kernel/module_signing.c:17: > arch/arm/include/asm/module.h:37:27: error: 'struct module' declared inside > parameter list will not be visible outside of this definition or declaration > [-Werror] > u32 get_module_plt(struct module *mod, unsigned long loc, Elf32_Addr val); > > This adds a forward declaration of struct module to make it all work. > > Fixes: f314dfea16a0 ("modsign: log module name in the event of an error") > Signed-off-by: Arnd Bergmann We used to have a general rule that where an asm/foo.h header and linux/foo.h header exists, and the linux/foo.h includes the asm/foo.h, then the linux/foo.h header will be used for including in .c files rather than the asm/ version of the same. Is there a reason why that can't be done here? That said, adding this is no bad thing. Acked-by: Russell King Thanks. > --- > I guess it would be useful if Jessica can pick this change up > in her tree that introduced the warning. > --- > arch/arm/include/asm/module.h | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/arch/arm/include/asm/module.h b/arch/arm/include/asm/module.h > index 89ad0596033a..9e81b7c498d8 100644 > --- a/arch/arm/include/asm/module.h > +++ b/arch/arm/include/asm/module.h > @@ -34,6 +34,7 @@ struct mod_arch_specific { > #endif > }; > > +struct module; > u32 get_module_plt(struct module *mod, unsigned long loc, Elf32_Addr val); > > /* > -- > 2.9.0 > -- RMK's Patch system: http://www.armlinux.org.uk/developer/patches/ FTTC broadband for 0.8mile line in suburbia: sync at 13.8Mbps down 630kbps up According to speedtest.net: 13Mbps down 490kbps up