diff options
Diffstat (limited to 'kernel/module/main.c')
-rw-r--r-- | kernel/module/main.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/kernel/module/main.c b/kernel/module/main.c index debeb0eb15d7..a2859dc3eea6 100644 --- a/kernel/module/main.c +++ b/kernel/module/main.c @@ -3744,6 +3744,19 @@ bool is_module_text_address(unsigned long addr) return __module_text_address(addr) != NULL; } +void module_for_each_mod(int(*func)(struct module *mod, void *data), void *data) +{ + struct module *mod; + + guard(rcu)(); + list_for_each_entry_rcu(mod, &modules, list) { + if (mod->state == MODULE_STATE_UNFORMED) + continue; + if (func(mod, data)) + break; + } +} + /** * __module_text_address() - get the module whose code contains an address. * @addr: the address. |