diff --git a/include/asm-generic/export.h b/include/asm-generic/export.h index e2b5d0f569d3bc1c0c34f5c41c354cf4e9599d95..d0912c7ac2fc16f815cbdcb6b83f03848865b37f 100644 --- a/include/asm-generic/export.h +++ b/include/asm-generic/export.h @@ -17,7 +17,7 @@ .macro __put, val, name #ifdef CONFIG_HAVE_ARCH_PREL32_RELOCATIONS - .long \val - ., \name - ., 0 - . + .long \val - ., \name - ., 0 #elif defined(CONFIG_64BIT) .quad \val, \name, 0 #else diff --git a/include/linux/export.h b/include/linux/export.h index 2c5468d8ea9adf16a0a0a12e33cb2d12e2b07281..ef5d015d754a6f2a6ecdb3dcce0676b7cf5e59cc 100644 --- a/include/linux/export.h +++ b/include/linux/export.h @@ -68,7 +68,7 @@ extern struct module __this_module; "__ksymtab_" #sym ": \n" \ " .long " #sym "- . \n" \ " .long __kstrtab_" #sym "- . \n" \ - " .long 0 - . \n" \ + " .long 0 \n" \ " .previous \n") struct kernel_symbol { diff --git a/kernel/module.c b/kernel/module.c index f76efcf2043ef32cf9044dc0db81610bf2fe4845..7ab244c4e1ba4b43cb65f0fd9cee405754210566 100644 --- a/kernel/module.c +++ b/kernel/module.c @@ -547,6 +547,8 @@ static const char *kernel_symbol_name(const struct kernel_symbol *sym) static const char *kernel_symbol_namespace(const struct kernel_symbol *sym) { #ifdef CONFIG_HAVE_ARCH_PREL32_RELOCATIONS + if (!sym->namespace_offset) + return NULL; return offset_to_ptr(&sym->namespace_offset); #else return sym->namespace;