Re: linux-next: rr tree build warning

Rusty Russell
2009-11-12T13:15:51Z

On Thu, 12 Nov 2009 06:51:14 pm Stephen Rothwell wrote:
> Hi Rusty,
>
> Today's linux-next build (i386 defconfig) produced this warning:
>
> kernel/module.c:1953: warning: 'crc_section_names' defined but not used
>
> Introduced by commit 67260d90118a2394df528fe4e37e814d950ca5b5 ("module:
> refactor symbol tables and try to reduce code size of each_symbol()").
> This build has CONFIG_MODVERSIONS disabled.

Thanks. I hit that warning in my config too, but didn't notice :(

Subject: Fix warning for CONFIG_MODVERSIONS=n:

linux-next Maestro Stephen Rothwell reports:
Today's linux-next build (i386 defconfig) produced this warning:

kernel/module.c:1953: warning: 'crc_section_names' defined but not used

Introduced by commit 67260d90118a2394df528fe4e37e814d950ca5b5 ("module:
refactor symbol tables and try to reduce code size of each_symbol()").
This build has CONFIG_MODVERSIONS disabled.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>

diff --git a/kernel/module.c b/kernel/module.c
--- a/kernel/module.c
+++ b/kernel/module.c
@@ -1075,6 +1075,16 @@ static int try_to_force_load(struct modu
}

#ifdef CONFIG_MODVERSIONS
+static const char *crc_section_names[] = {
+ [EXPORT_TYPE_PLAIN] = "__kcrctab",
+ [EXPORT_TYPE_GPL] = "__kcrctab_gpl",
+#ifdef CONFIG_UNUSED_SYMBOLS
+ [EXPORT_TYPE_UNUSED] = "__kcrctab_unused",
+ [EXPORT_TYPE_UNUSED_GPL] = "__kcrctab_unused_gpl",
+#endif
+ [EXPORT_TYPE_GPL_FUTURE] = "__kcrctab_gpl_future",
+};
+
static int check_version(Elf_Shdr *sechdrs,
unsigned int versindex,
const char *symname,
@@ -2103,16 +2113,6 @@ static const char *export_section_names[
[EXPORT_TYPE_GPL_FUTURE] = "__ksymtab_gpl_future",
};

-static const char *crc_section_names[] = {
- [EXPORT_TYPE_PLAIN] = "__kcrctab",
- [EXPORT_TYPE_GPL] = "__kcrctab_gpl",
-#ifdef CONFIG_UNUSED_SYMBOLS
- [EXPORT_TYPE_UNUSED] = "__kcrctab_unused",
- [EXPORT_TYPE_UNUSED_GPL] = "__kcrctab_unused_gpl",
-#endif
- [EXPORT_TYPE_GPL_FUTURE] = "__kcrctab_gpl_future",
-};
-
/* Allocate and load the module: note that size of section 0 is always
zero, and we rely on this for optional sections. */
static noinline struct module *load_module(void __user *umod,