diff options
author | Rusty Russell <rusty@rustcorp.com.au> | 2009-03-31 15:05:31 -0400 |
---|---|---|
committer | Rusty Russell <rusty@rustcorp.com.au> | 2009-03-30 22:35:32 -0400 |
commit | a6e6abd575fcbe6572ebc7a70ad616406d206fa8 (patch) | |
tree | 3909d2be063116936179bb4da85d5cb4aed32ce6 /kernel/module.c | |
parent | e610499e2656e61975affd0af56b26eb73964c84 (diff) |
module: remove module_text_address()
Impact: Replace and remove risky (non-EXPORTed) API
module_text_address() returns a pointer to the module, which given locking
improvements in module.c, is useless except to test for NULL:
1) If the module can't go away, use __module_text_address.
2) Otherwise, just use is_module_text_address().
Cc: linux-mtd@lists.infradead.org
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Diffstat (limited to 'kernel/module.c')
-rw-r--r-- | kernel/module.c | 17 |
1 files changed, 4 insertions, 13 deletions
diff --git a/kernel/module.c b/kernel/module.c index bd15a94f91c1..8ddca629e079 100644 --- a/kernel/module.c +++ b/kernel/module.c | |||
@@ -908,8 +908,10 @@ void symbol_put_addr(void *addr) | |||
908 | if (core_kernel_text((unsigned long)addr)) | 908 | if (core_kernel_text((unsigned long)addr)) |
909 | return; | 909 | return; |
910 | 910 | ||
911 | if (!(modaddr = module_text_address((unsigned long)addr))) | 911 | /* module_text_address is safe here: we're supposed to have reference |
912 | BUG(); | 912 | * to module from symbol_get, so it can't go away. */ |
913 | modaddr = __module_text_address((unsigned long)addr); | ||
914 | BUG_ON(!modaddr); | ||
913 | module_put(modaddr); | 915 | module_put(modaddr); |
914 | } | 916 | } |
915 | EXPORT_SYMBOL_GPL(symbol_put_addr); | 917 | EXPORT_SYMBOL_GPL(symbol_put_addr); |
@@ -2821,17 +2823,6 @@ struct module *__module_text_address(unsigned long addr) | |||
2821 | return mod; | 2823 | return mod; |
2822 | } | 2824 | } |
2823 | 2825 | ||
2824 | struct module *module_text_address(unsigned long addr) | ||
2825 | { | ||
2826 | struct module *mod; | ||
2827 | |||
2828 | preempt_disable(); | ||
2829 | mod = __module_text_address(addr); | ||
2830 | preempt_enable(); | ||
2831 | |||
2832 | return mod; | ||
2833 | } | ||
2834 | |||
2835 | /* Don't grab lock, we're oopsing. */ | 2826 | /* Don't grab lock, we're oopsing. */ |
2836 | void print_modules(void) | 2827 | void print_modules(void) |
2837 | { | 2828 | { |