aboutsummaryrefslogtreecommitdiffstats
path: root/kernel
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2013-01-20 23:22:58 -0500
committerLinus Torvalds <torvalds@linux-foundation.org>2013-01-20 23:22:58 -0500
commitee61abb3223e28a1a14a8429c0319755d20d3e40 (patch)
tree4054f8726988c6a16264b34d6b630c6597077cda /kernel
parent226364766f936d249e408de03821468c1bf11dda (diff)
module: fix missing module_mutex unlock
Commit 1fb9341ac348 ("module: put modules in list much earlier") moved some of the module initialization code around, and in the process changed the exit paths too. But for the duplicate export symbol error case the change made the ddebug_cleanup path jump to after the module mutex unlock, even though it happens with the mutex held. Rusty has some patches to split this function up into some helper functions, hopefully the mess of complex goto targets will go away eventually. Reported-by: Dan Carpenter <dan.carpenter@oracle.com> Cc: Rusty Russell <rusty@rustcorp.com.au> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'kernel')
-rw-r--r--kernel/module.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/kernel/module.c b/kernel/module.c
index d25e359279ae..eab08274ec9b 100644
--- a/kernel/module.c
+++ b/kernel/module.c
@@ -3274,8 +3274,8 @@ again:
3274 /* module_bug_cleanup needs module_mutex protection */ 3274 /* module_bug_cleanup needs module_mutex protection */
3275 mutex_lock(&module_mutex); 3275 mutex_lock(&module_mutex);
3276 module_bug_cleanup(mod); 3276 module_bug_cleanup(mod);
3277 mutex_unlock(&module_mutex);
3278 ddebug_cleanup: 3277 ddebug_cleanup:
3278 mutex_unlock(&module_mutex);
3279 dynamic_debug_remove(info->debug); 3279 dynamic_debug_remove(info->debug);
3280 synchronize_sched(); 3280 synchronize_sched();
3281 kfree(mod->args); 3281 kfree(mod->args);