diff options
author | Peter Zijlstra <peterz@infradead.org> | 2015-05-27 03:39:37 +0200 |
---|---|---|
committer | Rusty Russell <rusty@rustcorp.com.au> | 2015-05-28 04:02:08 +0200 |
commit | b7df4d1b23bfca830f1076412d21524686c5a441 (patch) | |
tree | cd496160a6e3b493bb8d508e910a84eeb4ac6a09 /kernel | |
parent | module: Make the mod_tree stuff conditional on PERF_EVENTS || TRACING (diff) | |
download | linux-b7df4d1b23bfca830f1076412d21524686c5a441.tar.xz linux-b7df4d1b23bfca830f1076412d21524686c5a441.zip |
module: Use __module_address() for module_address_lookup()
Use the generic __module_address() addr to struct module lookup
instead of open coding it once more.
Cc: Rusty Russell <rusty@rustcorp.com.au>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Diffstat (limited to 'kernel')
-rw-r--r-- | kernel/module.c | 17 |
1 files changed, 7 insertions, 10 deletions
diff --git a/kernel/module.c b/kernel/module.c index ac3044ceca3f..293dfaf4ce52 100644 --- a/kernel/module.c +++ b/kernel/module.c @@ -3671,19 +3671,15 @@ const char *module_address_lookup(unsigned long addr, char **modname, char *namebuf) { - struct module *mod; const char *ret = NULL; + struct module *mod; preempt_disable(); - list_for_each_entry_rcu(mod, &modules, list) { - if (mod->state == MODULE_STATE_UNFORMED) - continue; - if (within_module(addr, mod)) { - if (modname) - *modname = mod->name; - ret = get_ksymbol(mod, addr, size, offset); - break; - } + mod = __module_address(addr); + if (mod) { + if (modname) + *modname = mod->name; + ret = get_ksymbol(mod, addr, size, offset); } /* Make a copy in here where it's safe */ if (ret) { @@ -3691,6 +3687,7 @@ const char *module_address_lookup(unsigned long addr, ret = namebuf; } preempt_enable(); + return ret; } |