dynamic_debug: drop enabled field from struct _ddebug, use _DPRINTK_FLAGS_PRINT
authorJim Cromie <jim.cromie@gmail.com>
Mon, 19 Dec 2011 22:11:13 +0000 (17:11 -0500)
committerGreg Kroah-Hartman <gregkh@suse.de>
Tue, 24 Jan 2012 20:46:44 +0000 (12:46 -0800)
Currently any enabled dynamic-debug flag on a pr_debug callsite will
enable printing, even if _DPRINTK_FLAGS_PRINT is off.  Checking print
flag directly allows "-p" to disable callsites without fussing with
other flags, so the following disables everything, without altering
flags user may have set:

echo -p > $DBGFS/dynamic_debug/control

Signed-off-by: Jim Cromie <jim.cromie@gmail.com>
Signed-off-by: Jason Baron <jbaron@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

include/linux/dynamic_debug.h
lib/dynamic_debug.c

index 0564e3c..f71a6b0 100644 (file)
@@ -28,7 +28,6 @@ struct _ddebug {
 #define _DPRINTK_FLAGS_INCL_TID                (1<<4)
 #define _DPRINTK_FLAGS_DEFAULT 0
        unsigned int flags:8;
-       char enabled;
 } __attribute__((aligned(8)));
 
 
@@ -62,21 +61,20 @@ int __dynamic_netdev_dbg(struct _ddebug *descriptor,
                .format = (fmt),                                \
                .lineno = __LINE__,                             \
                .flags =  _DPRINTK_FLAGS_DEFAULT,               \
-               .enabled = false,                               \
        }
 
 #define dynamic_pr_debug(fmt, ...)                             \
 do {                                                           \
        DEFINE_DYNAMIC_DEBUG_METADATA(descriptor, fmt);         \
-       if (unlikely(descriptor.enabled))                       \
+       if (unlikely(descriptor.flags & _DPRINTK_FLAGS_PRINT))  \
                __dynamic_pr_debug(&descriptor, pr_fmt(fmt),    \
                                   ##__VA_ARGS__);              \
 } while (0)
 
 #define dynamic_dev_dbg(dev, fmt, ...)                         \
 do {                                                           \
-       DEFINE_DYNAMIC_DEBUG_METADATA(descriptor, fmt); \
-       if (unlikely(descriptor.enabled))                       \
+       DEFINE_DYNAMIC_DEBUG_METADATA(descriptor, fmt);         \
+       if (unlikely(descriptor.flags & _DPRINTK_FLAGS_PRINT))  \
                __dynamic_dev_dbg(&descriptor, dev, fmt,        \
                                  ##__VA_ARGS__);               \
 } while (0)
@@ -84,7 +82,7 @@ do {                                                          \
 #define dynamic_netdev_dbg(dev, fmt, ...)                      \
 do {                                                           \
        DEFINE_DYNAMIC_DEBUG_METADATA(descriptor, fmt);         \
-       if (unlikely(descriptor.enabled))                       \
+       if (unlikely(descriptor.flags & _DPRINTK_FLAGS_PRINT))  \
                __dynamic_netdev_dbg(&descriptor, dev, fmt,     \
                                     ##__VA_ARGS__);            \
 } while (0)
index e487d13..416c079 100644 (file)
@@ -151,10 +151,6 @@ static void ddebug_change(const struct ddebug_query *query,
                        if (newflags == dp->flags)
                                continue;
                        dp->flags = newflags;
-                       if (newflags)
-                               dp->enabled = 1;
-                       else
-                               dp->enabled = 0;
                        if (verbose)
                                pr_info("changed %s:%d [%s]%s %s\n",
                                        dp->filename, dp->lineno,