diff --git a/scripts/kernel-functions b/scripts/kernel-functions index 7bfdf7133..0bc0584a9 100644 --- a/scripts/kernel-functions +++ b/scripts/kernel-functions @@ -172,6 +172,45 @@ Get rid of sparse errors on sk_buff.protocol. void (*destructor)(struct sk_buff *skb); #if defined(CONFIG_NF_CONNTRACK) || defined(CONFIG_NF_CONNTRACK_MODULE) +EOF + fi + if [ "${1#3.13}" != "$1" ]; then + patch -f -s -p1 <<'EOF' +From 7b4ec8dd7d4ac467e9eee4d49f2c9574d773efbb Mon Sep 17 00:00:00 2001 +From: Johannes Berg +Date: Thu, 16 Jan 2014 10:18:48 +1030 +Subject: [PATCH] export: declare ksymtab symbols + +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 +Acked-by: Andi Kleen +Signed-off-by: Rusty Russell +--- + include/linux/export.h | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/include/linux/export.h b/include/linux/export.h +index 3f2793d..96e45ea 100644 +--- a/include/linux/export.h ++++ b/include/linux/export.h +@@ -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)) \ EOF fi )