Re: [PATCH] dynamic debug: move ddebug_remove_module() down intofree_module()

From: Andrew Morton
Date: Wed Jul 21 2010 - 17:34:56 EST


On Wed, 14 Jul 2010 16:00:57 -0400
Jason Baron <jbaron@xxxxxxxxxx> wrote:

> 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@xxxxxxxxxx>
> Reported-by: Thomas Renninger <trenn@xxxxxxx>
> Tested-by: Thomas Renninger <trenn@xxxxxxx>
> CC: akpm@xxxxxxxxxxxxxxxxxxxx
> CC: andi@xxxxxxxxxxxxxx
> CC: hare@xxxxxxx
> CC: trenn@xxxxxxx
> CC: yehuda@xxxxxxxxxxxxxxx
> CC: linux-kernel@xxxxxxxxxxxxxxx

Crappy changelog doesn't describe the bug we're fixing. It should.

It's

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

causes an oops, yes?

> 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);

Should we backport this into 2.6.34.x? Earlier?
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/