aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/module.c
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/module.c')
-rw-r--r--kernel/module.c17
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}
915EXPORT_SYMBOL_GPL(symbol_put_addr); 917EXPORT_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
2824struct 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. */
2836void print_modules(void) 2827void print_modules(void)
2837{ 2828{