diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2014-04-06 12:38:07 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2014-04-06 12:38:07 -0400 |
commit | 6f4c98e1c22c28e00b8f050cce895a6b74db15d1 (patch) | |
tree | b00da8b3367c6f3d0f74f44b8c4092a7b7cbbe18 /include/linux/module.h | |
parent | 18a1a7a1d862ae0794a0179473d08a414dd49234 (diff) | |
parent | 22c9bcad859d5c969289b3b37084a96c621f8f2c (diff) |
Merge tag 'modules-next-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux
Pull module updates from Rusty Russell:
"Nothing major: the stricter permissions checking for sysfs broke a
staging driver; fix included. Greg KH said he'd take the patch but
hadn't as the merge window opened, so it's included here to avoid
breaking build"
* tag 'modules-next-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux:
staging: fix up speakup kobject mode
Use 'E' instead of 'X' for unsigned module taint flag.
VERIFY_OCTAL_PERMISSIONS: stricter checking for sysfs perms.
kallsyms: fix percpu vars on x86-64 with relocation.
kallsyms: generalize address range checking
module: LLVMLinux: Remove unused function warning from __param_check macro
Fix: module signature vs tracepoints: add new TAINT_UNSIGNED_MODULE
module: remove MODULE_GENERIC_TABLE
module: allow multiple calls to MODULE_DEVICE_TABLE() per module
module: use pr_cont
Diffstat (limited to 'include/linux/module.h')
-rw-r--r-- | include/linux/module.h | 19 |
1 files changed, 8 insertions, 11 deletions
diff --git a/include/linux/module.h b/include/linux/module.h index 5a5053975114..f520a767c86c 100644 --- a/include/linux/module.h +++ b/include/linux/module.h | |||
@@ -82,15 +82,6 @@ void sort_extable(struct exception_table_entry *start, | |||
82 | void sort_main_extable(void); | 82 | void sort_main_extable(void); |
83 | void trim_init_extable(struct module *m); | 83 | void trim_init_extable(struct module *m); |
84 | 84 | ||
85 | #ifdef MODULE | ||
86 | #define MODULE_GENERIC_TABLE(gtype, name) \ | ||
87 | extern const struct gtype##_id __mod_##gtype##_table \ | ||
88 | __attribute__ ((unused, alias(__stringify(name)))) | ||
89 | |||
90 | #else /* !MODULE */ | ||
91 | #define MODULE_GENERIC_TABLE(gtype, name) | ||
92 | #endif | ||
93 | |||
94 | /* Generic info of form tag = "info" */ | 85 | /* Generic info of form tag = "info" */ |
95 | #define MODULE_INFO(tag, info) __MODULE_INFO(tag, tag, info) | 86 | #define MODULE_INFO(tag, info) __MODULE_INFO(tag, tag, info) |
96 | 87 | ||
@@ -141,8 +132,14 @@ extern const struct gtype##_id __mod_##gtype##_table \ | |||
141 | /* What your module does. */ | 132 | /* What your module does. */ |
142 | #define MODULE_DESCRIPTION(_description) MODULE_INFO(description, _description) | 133 | #define MODULE_DESCRIPTION(_description) MODULE_INFO(description, _description) |
143 | 134 | ||
144 | #define MODULE_DEVICE_TABLE(type, name) \ | 135 | #ifdef MODULE |
145 | MODULE_GENERIC_TABLE(type##_device, name) | 136 | /* Creates an alias so file2alias.c can find device table. */ |
137 | #define MODULE_DEVICE_TABLE(type, name) \ | ||
138 | extern const struct type##_device_id __mod_##type##__##name##_device_table \ | ||
139 | __attribute__ ((unused, alias(__stringify(name)))) | ||
140 | #else /* !MODULE */ | ||
141 | #define MODULE_DEVICE_TABLE(type, name) | ||
142 | #endif | ||
146 | 143 | ||
147 | /* Version of form [<epoch>:]<version>[-<extra-version>]. | 144 | /* Version of form [<epoch>:]<version>[-<extra-version>]. |
148 | * Or for CVS/RCS ID version, everything but the number is stripped. | 145 | * Or for CVS/RCS ID version, everything but the number is stripped. |