|
@@ -2179,9 +2179,11 @@ sys_init_module(void __user *umod,
|
|
|
return ret;
|
|
|
}
|
|
|
|
|
|
- /* Now it's a first class citizen! */
|
|
|
- mutex_lock(&module_mutex);
|
|
|
+ /* Now it's a first class citizen! Wake up anyone waiting for it. */
|
|
|
mod->state = MODULE_STATE_LIVE;
|
|
|
+ wake_up(&module_wq);
|
|
|
+
|
|
|
+ mutex_lock(&module_mutex);
|
|
|
/* Drop initial reference. */
|
|
|
module_put(mod);
|
|
|
unwind_remove_table(mod->unwind_info, 1);
|
|
@@ -2190,7 +2192,6 @@ sys_init_module(void __user *umod,
|
|
|
mod->init_size = 0;
|
|
|
mod->init_text_size = 0;
|
|
|
mutex_unlock(&module_mutex);
|
|
|
- wake_up(&module_wq);
|
|
|
|
|
|
return 0;
|
|
|
}
|