summaryrefslogtreecommitdiff
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, 3 insertions, 1 deletions
diff --git a/kernel/module.c b/kernel/module.c
index 16587e133b1b..a472deef9bdf 100644
--- a/kernel/module.c
+++ b/kernel/module.c
@@ -493,7 +493,6 @@ static inline int __try_stop_module(void *_sref)
}
/* Mark it as dying. */
- sref->mod->waiter = current;
sref->mod->state = MODULE_STATE_GOING;
return 0;
}
@@ -588,6 +587,9 @@ sys_delete_module(const char __user *name_user, unsigned int flags)
}
}
+ /* Set this up before setting mod->state */
+ mod->waiter = current;
+
/* Stop the machine so refcounts can't move and disable module. */
ret = try_stop_module(mod, flags, &forced);