export: declare ksymtab symbols
authorJohannes Berg <johannes.berg@intel.com>
Wed, 15 Jan 2014 23:48:48 +0000 (10:18 +1030)
committerRusty Russell <rusty@rustcorp.com.au>
Wed, 15 Jan 2014 23:53:02 +0000 (10:23 +1030)
sparse complains about any __ksymtab symbols with the following:

 warning: symbol '__ksymtab_...' was not declared. Should it be static?

due to Andi's patch making it non-static.

Mollify sparse by declaring the symbol extern, otherwise we get
drowned in sparse warnings for anything that uses EXPORT_SYMBOL
in the sources, making it easy to miss real warnings.

Fixes: e0f244c63fc9 ("asmlinkage, module: Make ksymtab [...] __visible")
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Acked-by: Andi Kleen <ak@linux.intel.com>
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
include/linux/export.h

index 3f2793d..96e45ea 100644 (file)
@@ -59,6 +59,7 @@ extern struct module __this_module;
        static const char __kstrtab_##sym[]                     \
        __attribute__((section("__ksymtab_strings"), aligned(1))) \
        = VMLINUX_SYMBOL_STR(sym);                              \
+       extern const struct kernel_symbol __ksymtab_##sym;      \
        __visible const struct kernel_symbol __ksymtab_##sym    \
        __used                                                  \
        __attribute__((section("___ksymtab" sec "+" #sym), unused))     \