lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20220107052942.1349447-18-jim.cromie@gmail.com>
Date:   Thu,  6 Jan 2022 22:29:40 -0700
From:   Jim Cromie <jim.cromie@...il.com>
To:     jbaron@...mai.com, gregkh@...uxfoundation.org,
        linux@...musvillemoes.dk, rostedt@...dmis.org,
        mathieu.desnoyers@...icios.com, daniel.vetter@...ll.ch,
        seanpaul@...omium.org, robdclark@...il.com,
        dri-devel@...ts.freedesktop.org, amd-gfx@...ts.freedesktop.org,
        intel-gvt-dev@...ts.freedesktop.org,
        intel-gfx@...ts.freedesktop.org, linux-kernel@...r.kernel.org
Cc:     quic_saipraka@...cinc.com, will@...nel.org,
        catalin.marinas@....com, quic_psodagud@...cinc.com, maz@...nel.org,
        arnd@...db.de, linux-arm-kernel@...ts.infradead.org,
        linux-arm-msm@...r.kernel.org, mingo@...hat.com,
        jim.cromie@...il.com
Subject: [PATCH v11 17/19] drm_print: add struct _ddebug *desc to trace-drm-*() params

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.cromie@...il.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

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ