Replace trace-drm-*()s category param with struct _ddebug *desc; it
has .classid field, which is the category.

This brings the events closer in line with those added for dyndbg; at
least the 1st param, and possibly the struct device (tb-checked).
There are still differences in the tail of the prototypes; vaf vs
text + len, which probably breaks CLASS sharing.

Signed-off-by: Jim Cromie <jim.cro...@gmail.com>
---
 drivers/gpu/drm/drm_print.c |  6 +++---
 include/trace/events/drm.h  | 36 ++++++++++++++++++------------------
 2 files changed, 21 insertions(+), 21 deletions(-)

diff --git a/drivers/gpu/drm/drm_print.c b/drivers/gpu/drm/drm_print.c
index 8c33302212fc..0a15a4ec5ead 100644
--- a/drivers/gpu/drm/drm_print.c
+++ b/drivers/gpu/drm/drm_print.c
@@ -278,14 +278,14 @@ void __drm_dev_dbg(struct _ddebug *desc, const struct 
device *dev,
                                   __builtin_return_address(0), &vaf);
 
                if (desc->flags & _DPRINTK_FLAGS_TRACE)
-                       trace_drm_devdbg(dev, category, &vaf);
+                       trace_drm_devdbg(dev, desc, &vaf);
        } else {
                if (desc->flags & _DPRINTK_FLAGS_PRINTK)
                        printk(KERN_DEBUG "[" DRM_NAME ":%ps] %pV",
                               __builtin_return_address(0), &vaf);
 
                if (desc->flags & _DPRINTK_FLAGS_TRACE)
-                       trace_drm_debug(category, &vaf);
+                       trace_drm_debug(desc, &vaf);
        }
        va_end(args);
 }
@@ -306,7 +306,7 @@ void ___drm_dbg(struct _ddebug *desc, enum 
drm_debug_category category, const ch
        printk(KERN_DEBUG "[" DRM_NAME ":%ps] %pV",
               __builtin_return_address(0), &vaf);
 
-       trace_drm_debug(category, &vaf);
+       trace_drm_debug(desc, &vaf);
 
        va_end(args);
 }
diff --git a/include/trace/events/drm.h b/include/trace/events/drm.h
index 944aedaf6aa6..bfe1fff923d8 100644
--- a/include/trace/events/drm.h
+++ b/include/trace/events/drm.h
@@ -9,25 +9,25 @@
 
 /* drm_debug() was called, pass its args */
 TRACE_EVENT(drm_debug,
-       TP_PROTO(int drm_debug_category, struct va_format *vaf),
+       TP_PROTO(struct _ddebug *desc, struct va_format *vaf),
 
-       TP_ARGS(drm_debug_category, vaf),
+       TP_ARGS(desc, vaf),
 
        TP_STRUCT__entry(
-               __field(int, drm_debug_category)
+               __field(struct _ddebug *, desc)
                __dynamic_array(char, msg, 256)
        ),
 
        TP_fast_assign(
                int len;
+               char *p = __get_str(msg);
 
-               __entry->drm_debug_category = drm_debug_category;
-               vsnprintf(__get_str(msg), 256, vaf->fmt, *vaf->va);
+               __entry->desc = desc;
+               len = vsnprintf(p, 256, vaf->fmt, *vaf->va);
 
-               len = strlen(__get_str(msg));
-               if ((len > 0) && (__get_str(msg)[len-1] == '\n'))
+               if ((len > 0) && (len < 256) && p[len-1] == '\n')
                        len -= 1;
-               __get_str(msg)[len] = 0;
+               p[len] = 0;
        ),
 
        TP_printk("%s", __get_str(msg))
@@ -35,30 +35,30 @@ TRACE_EVENT(drm_debug,
 
 /* drm_devdbg() was called, pass its args, preserving order */
 TRACE_EVENT(drm_devdbg,
-       TP_PROTO(const struct device *dev, int drm_debug_category, struct 
va_format *vaf),
+       TP_PROTO(const struct device *dev, struct _ddebug *desc, struct 
va_format *vaf),
 
-       TP_ARGS(dev, drm_debug_category, vaf),
+       TP_ARGS(dev, desc, vaf),
 
        TP_STRUCT__entry(
-               __field(const struct device*, dev)
-               __field(int, drm_debug_category)
+               __field(const struct device *, dev)
+               __field(struct _ddebug *, desc)
                __dynamic_array(char, msg, 256)
        ),
 
        TP_fast_assign(
                int len;
+               char *p = __get_str(msg);
 
-               __entry->drm_debug_category = drm_debug_category;
+               __entry->desc = desc;
                __entry->dev = dev;
-               vsnprintf(__get_str(msg), 256, vaf->fmt, *vaf->va);
+               len = vsnprintf(p, 256, vaf->fmt, *vaf->va);
 
-               len = strlen(__get_str(msg));
-               if ((len > 0) && (__get_str(msg)[len-1] == '\n'))
+               if ((len > 0) && (len < 256) && p[len-1] == '\n')
                        len -= 1;
-               __get_str(msg)[len] = 0;
+               p[len] = 0;
        ),
 
-       TP_printk("cat:%d, %s %s", __entry->drm_debug_category,
+       TP_printk("cat:%d, %s %s", __entry->desc->class_id,
                  dev_name(__entry->dev), __get_str(msg))
 );
 
-- 
2.33.1

Reply via email to