aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/module.c
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/module.c')
-rw-r--r--kernel/module.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/kernel/module.c b/kernel/module.c
index 9537da37ce87..794ebe8e878d 100644
--- a/kernel/module.c
+++ b/kernel/module.c
@@ -984,6 +984,8 @@ SYSCALL_DEFINE2(delete_module, const char __user *, name_user,
984 mod->exit(); 984 mod->exit();
985 blocking_notifier_call_chain(&module_notify_list, 985 blocking_notifier_call_chain(&module_notify_list,
986 MODULE_STATE_GOING, mod); 986 MODULE_STATE_GOING, mod);
987 ftrace_release_mod(mod);
988
987 async_synchronize_full(); 989 async_synchronize_full();
988 990
989 /* Store the name of the last unloaded module for diagnostic purposes */ 991 /* Store the name of the last unloaded module for diagnostic purposes */
@@ -3313,6 +3315,7 @@ fail:
3313 module_put(mod); 3315 module_put(mod);
3314 blocking_notifier_call_chain(&module_notify_list, 3316 blocking_notifier_call_chain(&module_notify_list,
3315 MODULE_STATE_GOING, mod); 3317 MODULE_STATE_GOING, mod);
3318 ftrace_release_mod(mod);
3316 free_module(mod); 3319 free_module(mod);
3317 wake_up_all(&module_wq); 3320 wake_up_all(&module_wq);
3318 return ret; 3321 return ret;
@@ -3389,6 +3392,7 @@ static int complete_formation(struct module *mod, struct load_info *info)
3389 mod->state = MODULE_STATE_COMING; 3392 mod->state = MODULE_STATE_COMING;
3390 mutex_unlock(&module_mutex); 3393 mutex_unlock(&module_mutex);
3391 3394
3395 ftrace_module_enable(mod);
3392 blocking_notifier_call_chain(&module_notify_list, 3396 blocking_notifier_call_chain(&module_notify_list,
3393 MODULE_STATE_COMING, mod); 3397 MODULE_STATE_COMING, mod);
3394 return 0; 3398 return 0;