mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-09 21:59:12 -04:00
Remove "unsafe" from module struct
Adrian Bunk points out that "unsafe" was used to mark modules touched by the deprecated MOD_INC_USE_COUNT interface, which has long gone. It's time to remove the member from the module structure, as well. If you want a module which can't unload, don't register an exit function. (Vlad Yasevich says SCTP is now safe to unload, so just remove the __unsafe there). Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> Acked-by: Shannon Nelson <shannon.nelson@intel.com> Acked-by: Dan Williams <dan.j.williams@intel.com> Acked-by: Vlad Yasevich <vladislav.yasevich@hp.com> Cc: Sridhar Samudrala <sri@us.ibm.com> Cc: Adrian Bunk <bunk@stusta.de> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
d9c9bef134
commit
af49d9248f
4 changed files with 9 additions and 37 deletions
|
|
@ -692,8 +692,7 @@ sys_delete_module(const char __user *name_user, unsigned int flags)
|
|||
}
|
||||
|
||||
/* If it has an init func, it must have an exit func to unload */
|
||||
if ((mod->init != NULL && mod->exit == NULL)
|
||||
|| mod->unsafe) {
|
||||
if (mod->init && !mod->exit) {
|
||||
forced = try_force_unload(flags);
|
||||
if (!forced) {
|
||||
/* This module can't be removed */
|
||||
|
|
@ -741,11 +740,6 @@ static void print_unload_info(struct seq_file *m, struct module *mod)
|
|||
seq_printf(m, "%s,", use->module_which_uses->name);
|
||||
}
|
||||
|
||||
if (mod->unsafe) {
|
||||
printed_something = 1;
|
||||
seq_printf(m, "[unsafe],");
|
||||
}
|
||||
|
||||
if (mod->init != NULL && mod->exit == NULL) {
|
||||
printed_something = 1;
|
||||
seq_printf(m, "[permanent],");
|
||||
|
|
@ -2011,15 +2005,10 @@ sys_init_module(void __user *umod,
|
|||
buggy refcounters. */
|
||||
mod->state = MODULE_STATE_GOING;
|
||||
synchronize_sched();
|
||||
if (mod->unsafe)
|
||||
printk(KERN_ERR "%s: module is now stuck!\n",
|
||||
mod->name);
|
||||
else {
|
||||
module_put(mod);
|
||||
mutex_lock(&module_mutex);
|
||||
free_module(mod);
|
||||
mutex_unlock(&module_mutex);
|
||||
}
|
||||
module_put(mod);
|
||||
mutex_lock(&module_mutex);
|
||||
free_module(mod);
|
||||
mutex_unlock(&module_mutex);
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue