Commit ef3555ba authored by Andrew Morton's avatar Andrew Morton Committed by Linus Torvalds

[PATCH] module.h __attribute_used__ fix

From: Rusty Russell <rusty@rustcorp.com.au>

Someone added __attribute_used__ throughout module.h, but didn't remove the
", unused".  Looks like some arch/gcc combos still consider it unused, and
discard the fn.
parent b814dfb7
...@@ -64,11 +64,12 @@ void sort_main_extable(void); ...@@ -64,11 +64,12 @@ void sort_main_extable(void);
#define __MODULE_INFO(tag, name, info) \ #define __MODULE_INFO(tag, name, info) \
static const char __module_cat(name,__LINE__)[] \ static const char __module_cat(name,__LINE__)[] \
__attribute_used__ \ __attribute_used__ \
__attribute__((section(".modinfo"),unused)) = __stringify(tag) "=" info __attribute__((section(".modinfo"))) = __stringify(tag) "=" info
#define MODULE_GENERIC_TABLE(gtype,name) \ #define MODULE_GENERIC_TABLE(gtype,name) \
extern const struct gtype##_id __mod_##gtype##_table \ extern const struct gtype##_id __mod_##gtype##_table \
__attribute__ ((unused, alias(__stringify(name)))) __attribute_used__ \
__attribute__ ((alias(__stringify(name))))
#define THIS_MODULE (&__this_module) #define THIS_MODULE (&__this_module)
...@@ -165,7 +166,7 @@ void *__symbol_get_gpl(const char *symbol); ...@@ -165,7 +166,7 @@ void *__symbol_get_gpl(const char *symbol);
extern void *__crc_##sym __attribute__((weak)); \ extern void *__crc_##sym __attribute__((weak)); \
static const unsigned long __kcrctab_##sym \ static const unsigned long __kcrctab_##sym \
__attribute_used__ \ __attribute_used__ \
__attribute__((section("__kcrctab" sec), unused)) \ __attribute__((section("__kcrctab" sec))) \
= (unsigned long) &__crc_##sym; = (unsigned long) &__crc_##sym;
#else #else
#define __CRC_SYMBOL(sym, sec) #define __CRC_SYMBOL(sym, sec)
...@@ -179,7 +180,7 @@ void *__symbol_get_gpl(const char *symbol); ...@@ -179,7 +180,7 @@ void *__symbol_get_gpl(const char *symbol);
= MODULE_SYMBOL_PREFIX #sym; \ = MODULE_SYMBOL_PREFIX #sym; \
static const struct kernel_symbol __ksymtab_##sym \ static const struct kernel_symbol __ksymtab_##sym \
__attribute_used__ \ __attribute_used__ \
__attribute__((section("__ksymtab" sec), unused)) \ __attribute__((section("__ksymtab" sec))) \
= { (unsigned long)&sym, __kstrtab_##sym } = { (unsigned long)&sym, __kstrtab_##sym }
#define EXPORT_SYMBOL(sym) \ #define EXPORT_SYMBOL(sym) \
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment