return chip->scan_bbt(mtd);
 }
 
-/* module_text_address() isn't exported, and it's mostly a pointless
+/* is_module_text_address() isn't exported, and it's mostly a pointless
    test if this is a module _anyway_ -- they'd have to try _really_ hard
    to call us from in-kernel code if the core NAND support is modular. */
 #ifdef MODULE
 #define caller_is_module() (1)
 #else
 #define caller_is_module() \
-       module_text_address((unsigned long)__builtin_return_address(0))
+       is_module_text_address((unsigned long)__builtin_return_address(0))
 #endif
 
 /**
 
        return mod->state != MODULE_STATE_GOING;
 }
 
-/* Is this address in a module? (second is with no locks, for oops) */
-struct module *module_text_address(unsigned long addr);
 struct module *__module_text_address(unsigned long addr);
 struct module *__module_address(unsigned long addr);
 bool is_module_address(unsigned long addr);
        return NULL;
 }
 
-static inline struct module *module_text_address(unsigned long addr)
-{
-       return NULL;
-}
-
 static inline struct module *__module_address(unsigned long addr)
 {
        return NULL;
 
 {
        if (core_kernel_text(addr))
                return 1;
-       return __module_text_address(addr) != NULL;
+       return is_module_text_address(addr);
 }
 
 int kernel_text_address(unsigned long addr)
 {
        if (core_kernel_text(addr))
                return 1;
-       return module_text_address(addr) != NULL;
+       return is_module_text_address(addr);
 }
 
 /*
        addr = (unsigned long) dereference_function_descriptor(ptr);
        if (core_kernel_text(addr))
                return 1;
-       return module_text_address(addr) != NULL;
+       return is_module_text_address(addr);
 }
 
        if (core_kernel_text((unsigned long)addr))
                return;
 
-       if (!(modaddr = module_text_address((unsigned long)addr)))
-               BUG();
+       /* module_text_address is safe here: we're supposed to have reference
+        * to module from symbol_get, so it can't go away. */
+       modaddr = __module_text_address((unsigned long)addr);
+       BUG_ON(!modaddr);
        module_put(modaddr);
 }
 EXPORT_SYMBOL_GPL(symbol_put_addr);
        return mod;
 }
 
-struct module *module_text_address(unsigned long addr)
-{
-       struct module *mod;
-
-       preempt_disable();
-       mod = __module_text_address(addr);
-       preempt_enable();
-
-       return mod;
-}
-
 /* Don't grab lock, we're oopsing. */
 void print_modules(void)
 {