public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH] dynamic debug: move ddebug_remove_module() down into free_module()
@ 2010-07-14 20:00 Jason Baron
  2010-07-21 21:34 ` Andrew Morton
  0 siblings, 1 reply; 3+ messages in thread
From: Jason Baron @ 2010-07-14 20:00 UTC (permalink / raw)
  To: akpm; +Cc: linux-kernel, andi, hare, trenn, yehuda

move the call to ddebug_remove_module() down into free_module(). In this way
it should be called from all error paths. Currently, we are missing the
remove if the module init routine fails.

Signed-off-by: Jason Baron <jbaron@redhat.com>
Reported-by: Thomas Renninger <trenn@suse.de>
Tested-by: Thomas Renninger <trenn@suse.de>
CC: akpm@linux-foundation.org
CC: andi@firstfloor.org
CC: hare@suse.de
CC: trenn@suse.de
CC: yehuda@hq.newdream.net
CC: linux-kernel@vger.kernel.org
---
 kernel/module.c |    4 +++-
 1 files changed, 3 insertions(+), 1 deletions(-)

diff --git a/kernel/module.c b/kernel/module.c
index 5d2d281..6c56282 100644
--- a/kernel/module.c
+++ b/kernel/module.c
@@ -787,7 +787,6 @@ SYSCALL_DEFINE2(delete_module, const char __user *, name_user,
 
 	/* Store the name of the last unloaded module for diagnostic purposes */
 	strlcpy(last_unloaded_module, mod->name, sizeof(last_unloaded_module));
-	ddebug_remove_module(mod->name);
 
 	free_module(mod);
 	return 0;
@@ -1550,6 +1549,9 @@ static void free_module(struct module *mod)
 	remove_sect_attrs(mod);
 	mod_kobject_remove(mod);
 
+	/* Remove dynamic debug info */
+	ddebug_remove_module(mod->name);
+
 	/* Arch-specific cleanup. */
 	module_arch_cleanup(mod);
 
-- 
1.7.1


^ permalink raw reply related	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2010-07-22  7:06 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-07-14 20:00 [PATCH] dynamic debug: move ddebug_remove_module() down into free_module() Jason Baron
2010-07-21 21:34 ` Andrew Morton
2010-07-22  7:07   ` Thomas Renninger

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox