|
@@ -3388,8 +3388,7 @@ static bool finished_loading(const char *name)
|
|
|
sched_annotate_sleep();
|
|
sched_annotate_sleep();
|
|
|
mutex_lock(&module_mutex);
|
|
mutex_lock(&module_mutex);
|
|
|
mod = find_module_all(name, strlen(name), true);
|
|
mod = find_module_all(name, strlen(name), true);
|
|
|
- ret = !mod || mod->state == MODULE_STATE_LIVE
|
|
|
|
|
- || mod->state == MODULE_STATE_GOING;
|
|
|
|
|
|
|
+ ret = !mod || mod->state == MODULE_STATE_LIVE;
|
|
|
mutex_unlock(&module_mutex);
|
|
mutex_unlock(&module_mutex);
|
|
|
|
|
|
|
|
return ret;
|
|
return ret;
|
|
@@ -3559,8 +3558,7 @@ again:
|
|
|
mutex_lock(&module_mutex);
|
|
mutex_lock(&module_mutex);
|
|
|
old = find_module_all(mod->name, strlen(mod->name), true);
|
|
old = find_module_all(mod->name, strlen(mod->name), true);
|
|
|
if (old != NULL) {
|
|
if (old != NULL) {
|
|
|
- if (old->state == MODULE_STATE_COMING
|
|
|
|
|
- || old->state == MODULE_STATE_UNFORMED) {
|
|
|
|
|
|
|
+ if (old->state != MODULE_STATE_LIVE) {
|
|
|
/* Wait in case it fails to load. */
|
|
/* Wait in case it fails to load. */
|
|
|
mutex_unlock(&module_mutex);
|
|
mutex_unlock(&module_mutex);
|
|
|
err = wait_event_interruptible(module_wq,
|
|
err = wait_event_interruptible(module_wq,
|