Messages in this thread Patch in this message | | | Date | Fri, 30 Jul 2010 10:14:19 -0700 | From | Greg KH <> | Subject | [031/165] dynamic debug: move ddebug_remove_module() down into free_module() |
| |
2.6.32-stable review patch. If anyone has any objections, please let us know.
------------------
From: Jason Baron <jbaron@redhat.com>
commit b82bab4bbe9efa7bc7177fc20620fff19bd95484 upstream.
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: Jason Baron <jbaron@redhat.com> Reported-by: Thomas Renninger <trenn@suse.de> Tested-by: Thomas Renninger <trenn@suse.de> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
--- kernel/module.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)
--- a/kernel/module.c +++ b/kernel/module.c @@ -870,7 +870,6 @@ SYSCALL_DEFINE2(delete_module, const cha mutex_lock(&module_mutex); /* 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); out: @@ -1533,6 +1532,9 @@ static void free_module(struct module *m remove_sect_attrs(mod); mod_kobject_remove(mod); + /* Remove dynamic debug info */ + ddebug_remove_module(mod->name); + /* Arch-specific cleanup. */ module_arch_cleanup(mod);
| |