diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2014-08-16 09:24:41 -0600 | 
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2014-08-16 09:24:41 -0600 | 
| commit | 6fedb0ff32e6bfcc408a8d52c68b8bfe4e3d945b (patch) | |
| tree | c5fa0f4a49bfb32065350f871e8e057ee8fd8a73 /kernel/module.c | |
| parent | 90c80969145d006eb6294a3aa501d0e156f5e244 (diff) | |
| parent | ff7e0055bb5ddbbb320cdd8dfd3e18672bddd2ad (diff) | |
Merge tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux
Pull module fix from Rusty Russell:
 "Nasty potential bug if someone uses a known module param with an
  invalid value (we don't fail unknown module params any more, just
  warn)"
* tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux:
  module: Clean up ro/nx after early module load failures
Diffstat (limited to 'kernel/module.c')
| -rw-r--r-- | kernel/module.c | 5 | 
1 files changed, 5 insertions, 0 deletions
diff --git a/kernel/module.c b/kernel/module.c index 6f69463f0066..03214bd288e9 100644 --- a/kernel/module.c +++ b/kernel/module.c @@ -3304,6 +3304,11 @@ static int load_module(struct load_info *info, const char __user *uargs,  	mutex_lock(&module_mutex);  	module_bug_cleanup(mod);  	mutex_unlock(&module_mutex); + +	/* we can't deallocate the module until we clear memory protection */ +	unset_module_init_ro_nx(mod); +	unset_module_core_ro_nx(mod); +   ddebug_cleanup:  	dynamic_debug_remove(info->debug);  	synchronize_sched();  | 
