Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b82bab4b authored by Jason Baron's avatar Jason Baron Committed by Linus Torvalds
Browse files

dynamic debug: move ddebug_remove_module() down into free_module()



The command

	echo "file ec.c +p" >/sys/kernel/debug/dynamic_debug/control

causes an oops.

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: default avatarJason Baron <jbaron@redhat.com>
Reported-by: default avatarThomas Renninger <trenn@suse.de>
Tested-by: default avatarThomas Renninger <trenn@suse.de>
Cc: <stable@kernel.org>		[2.6.32+]
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent d15aa2cc
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -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);