diff options
Diffstat (limited to 'kernel/module.c')
| -rw-r--r-- | kernel/module.c | 4 |
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); |
