aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2013-01-20 20:22:58 -0800
committerHerton Ronaldo Krzesinski <herton.krzesinski@canonical.com>2013-02-06 11:02:54 -0200
commitc20b79b8ad18ad78575352e8c7b23aa5bd4ce950 (patch)
tree63bd5c29ad86002ea3583f18e0c047811ceefe9d
parentd6c55c8109d556e23eafc9cc6de0cd98d0cf728f (diff)
module: fix missing module_mutex unlock
commit ee61abb3223e28a1a14a8429c0319755d20d3e40 upstream. 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> Signed-off-by: Herton Ronaldo Krzesinski <herton.krzesinski@canonical.com>
-rw-r--r--kernel/module.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/kernel/module.c b/kernel/module.c
index 19716acbba48..2ad732d173d0 100644
--- a/kernel/module.c
+++ b/kernel/module.c
@@ -3033,8 +3033,8 @@ again:
/* module_bug_cleanup needs module_mutex protection */
mutex_lock(&module_mutex);
module_bug_cleanup(mod);
- mutex_unlock(&module_mutex);
ddebug_cleanup:
+ mutex_unlock(&module_mutex);
dynamic_debug_remove(info.debug);
synchronize_sched();
kfree(mod->args);