[PATCH 89/93] module: fix missing module_mutex unlock

Herton Ronaldo Krzesinski herton.krzesinski at canonical.com
Tue Feb 5 22:07:18 UTC 2013


3.5.7.5 -stable review patch.  If anyone has any objections, please let me know.

------------------

From: Linus Torvalds <torvalds at linux-foundation.org>

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 at oracle.com>
Cc: Rusty Russell <rusty at rustcorp.com.au>
Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
Signed-off-by: Herton Ronaldo Krzesinski <herton.krzesinski at canonical.com>
---
 kernel/module.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/kernel/module.c b/kernel/module.c
index 19716ac..2ad732d1 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);
-- 
1.7.9.5





More information about the kernel-team mailing list