modpost: fix unwanted VMLINUX_SYMBOL_STR expansion
authorJames Hogan <james.hogan@imgtec.com>
Mon, 29 Apr 2013 02:06:59 +0000 (11:36 +0930)
committerRusty Russell <rusty@rustcorp.com.au>
Mon, 29 Apr 2013 02:11:42 +0000 (11:41 +0930)
Commit a4b6a77b77ba4f526392612c2365797fab956014 ("module: fix symbol
versioning with symbol prefixes") broke the MODVERSIONS loading of any
module using memcmp (e.g. ipv6) on x86_32, as it's defined to
__builtin_memcmp which is expanded by VMLINUX_SYMBOL_STR. Use
__VMLINUX_SYMBOL_STR instead which doesn't expand the argument.

Reported-by: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
Reported-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: James Hogan <james.hogan@imgtec.com>
Cc: H. Peter Anvin <hpa@zytor.com>
Tested-by: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
Tested-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Cc: <stable@vger.kernel.org> # 3.9
scripts/mod/modpost.c

index 1f90961ada77c88ea7482f8bbdd865bf84b02e86..a4be8e112bb63c2ece5baa423e9aef65c92a1ad1 100644 (file)
@@ -1957,7 +1957,7 @@ static int add_versions(struct buffer *b, struct module *mod)
                                s->name, mod->name);
                        continue;
                }
-               buf_printf(b, "\t{ %#8x, VMLINUX_SYMBOL_STR(%s) },\n",
+               buf_printf(b, "\t{ %#8x, __VMLINUX_SYMBOL_STR(%s) },\n",
                           s->crc, s->name);
        }