module: add within_module() function
authorPetr Mladek <pmladek@suse.cz>
Sat, 26 Jul 2014 21:54:01 +0000 (07:24 +0930)
committerRusty Russell <rusty@rustcorp.com.au>
Sun, 27 Jul 2014 11:22:43 +0000 (20:52 +0930)
It is just a small optimization that allows to replace few
occurrences of within_module_init() || within_module_core()
with a single call.

Signed-off-by: Petr Mladek <pmladek@suse.cz>
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
include/linux/module.h
kernel/module.c

index f520a76..61d8fb2 100644 (file)
@@ -408,6 +408,11 @@ static inline int within_module_init(unsigned long addr, const struct module *mo
               addr < (unsigned long)mod->module_init + mod->init_size;
 }
 
+static inline int within_module(unsigned long addr, const struct module *mod)
+{
+       return within_module_init(addr, mod) || within_module_core(addr, mod);
+}
+
 /* Search for module by name: must hold module_mutex. */
 struct module *find_module(const char *name);
 
index 81e727c..e87fdd2 100644 (file)
@@ -3448,8 +3448,7 @@ const char *module_address_lookup(unsigned long addr,
        list_for_each_entry_rcu(mod, &modules, list) {
                if (mod->state == MODULE_STATE_UNFORMED)
                        continue;
-               if (within_module_init(addr, mod) ||
-                   within_module_core(addr, mod)) {
+               if (within_module(addr, mod)) {
                        if (modname)
                                *modname = mod->name;
                        ret = get_ksymbol(mod, addr, size, offset);
@@ -3473,8 +3472,7 @@ int lookup_module_symbol_name(unsigned long addr, char *symname)
        list_for_each_entry_rcu(mod, &modules, list) {
                if (mod->state == MODULE_STATE_UNFORMED)
                        continue;
-               if (within_module_init(addr, mod) ||
-                   within_module_core(addr, mod)) {
+               if (within_module(addr, mod)) {
                        const char *sym;
 
                        sym = get_ksymbol(mod, addr, NULL, NULL);
@@ -3499,8 +3497,7 @@ int lookup_module_symbol_attrs(unsigned long addr, unsigned long *size,
        list_for_each_entry_rcu(mod, &modules, list) {
                if (mod->state == MODULE_STATE_UNFORMED)
                        continue;
-               if (within_module_init(addr, mod) ||
-                   within_module_core(addr, mod)) {
+               if (within_module(addr, mod)) {
                        const char *sym;
 
                        sym = get_ksymbol(mod, addr, size, offset);
@@ -3764,8 +3761,7 @@ struct module *__module_address(unsigned long addr)
        list_for_each_entry_rcu(mod, &modules, list) {
                if (mod->state == MODULE_STATE_UNFORMED)
                        continue;
-               if (within_module_core(addr, mod)
-                   || within_module_init(addr, mod))
+               if (within_module(addr, mod))
                        return mod;
        }
        return NULL;