Driver core: fix 'dynamic_debug' cmd line parameter
authorJason Baron <jbaron@redhat.com>
Mon, 27 Oct 2008 16:05:14 +0000 (12:05 -0400)
committerGreg Kroah-Hartman <gregkh@suse.de>
Wed, 29 Oct 2008 22:03:50 +0000 (15:03 -0700)
In testing 2.6.28-rc1, I found that passing 'dynamic_printk' on the command
line didn't activate the debug code. The problem is that dynamic_printk_setup()
(which activates the debugging) is being called before dynamic_printk_init() is
called (which initializes infrastructure). Fix this by setting setting the
state to 'DYNAMIC_ENABLED_ALL' in dynamic_printk_setup(), which will also
cause all subsequent modules to have debugging automatically started, which is
probably the behavior we want.

Signed-off-by: Jason Baron <jbaron@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
lib/dynamic_printk.c

index d640f87bdc9edf8b70d23925f0dcdebdc6c54ce4..d83660fd6fdde53617121f3f72e38b58158126b9 100644 (file)
@@ -402,6 +402,8 @@ static int __init dynamic_printk_init(void)
                                iter->logical_modname,
                                iter->flag_names, iter->hash, iter->hash2);
        }
+       if (dynamic_enabled == DYNAMIC_ENABLED_ALL)
+               set_all(true);
        return 0;
 }
 module_init(dynamic_printk_init);
@@ -411,7 +413,7 @@ static int __init dynamic_printk_setup(char *str)
 {
        if (str)
                return -ENOENT;
-       set_all(true);
+       dynamic_enabled = DYNAMIC_ENABLED_ALL;
        return 0;
 }
 /* Use early_param(), so we can get debug output as early as possible */