Message ID | a7e1cf121cc52969878d0450b273e7fa10043835.1655047991.git.christophe.leroy@csgroup.eu (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | module: Fix "warning: variable 'exit' set but not used" | expand |
On Sun, Jun 12, 2022 at 05:33:20PM +0200, Christophe Leroy wrote: > When CONFIG_MODULE_UNLOAD is not selected, 'exit' is > set but never used. > > It is not possible to replace the #ifdef CONFIG_MODULE_UNLOAD by > IS_ENABLED(CONFIG_MODULE_UNLOAD) because mod->exit doesn't exist > when CONFIG_MODULE_UNLOAD is not selected. > > And because of the rcu_read_lock_sched() section it is not easy > to regroup everything in a single #ifdef. Let's regroup partially > and add missing #ifdef to completely opt out the use of > 'exit' when CONFIG_MODULE_UNLOAD is not selected. > > Reported-by: kernel test robot <lkp@intel.com> > Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu> Queued up thanks! Luis
diff --git a/kernel/module/main.c b/kernel/module/main.c index fed58d30725d..0548151dd933 100644 --- a/kernel/module/main.c +++ b/kernel/module/main.c @@ -2939,24 +2939,25 @@ static void cfi_init(struct module *mod) { #ifdef CONFIG_CFI_CLANG initcall_t *init; +#ifdef CONFIG_MODULE_UNLOAD exitcall_t *exit; +#endif rcu_read_lock_sched(); mod->cfi_check = (cfi_check_fn) find_kallsyms_symbol_value(mod, "__cfi_check"); init = (initcall_t *) find_kallsyms_symbol_value(mod, "__cfi_jt_init_module"); - exit = (exitcall_t *) - find_kallsyms_symbol_value(mod, "__cfi_jt_cleanup_module"); - rcu_read_unlock_sched(); - /* Fix init/exit functions to point to the CFI jump table */ if (init) mod->init = *init; #ifdef CONFIG_MODULE_UNLOAD + exit = (exitcall_t *) + find_kallsyms_symbol_value(mod, "__cfi_jt_cleanup_module"); if (exit) mod->exit = *exit; #endif + rcu_read_unlock_sched(); cfi_module_add(mod, mod_tree.addr_min); #endif
When CONFIG_MODULE_UNLOAD is not selected, 'exit' is set but never used. It is not possible to replace the #ifdef CONFIG_MODULE_UNLOAD by IS_ENABLED(CONFIG_MODULE_UNLOAD) because mod->exit doesn't exist when CONFIG_MODULE_UNLOAD is not selected. And because of the rcu_read_lock_sched() section it is not easy to regroup everything in a single #ifdef. Let's regroup partially and add missing #ifdef to completely opt out the use of 'exit' when CONFIG_MODULE_UNLOAD is not selected. Reported-by: kernel test robot <lkp@intel.com> Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu> --- kernel/module/main.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-)