From: Sven Eckelmann <sven@narfation.org>
To: b.a.t.m.a.n@lists.open-mesh.org
Subject: [PATCH] batman-adv: tracing: Use the new __vstring() helper
Date: Sun, 24 Jul 2022 23:27:19 +0200 [thread overview]
Message-ID: <20220724212719.92570-1-sven@narfation.org> (raw)
From: "Steven Rostedt (Google)" <rostedt@goodmis.org>
Instead of open coding a __dynamic_array() with a fixed length (which
defeats the purpose of the dynamic array in the first place). Use the new
__vstring() helper that will use a va_list and only write enough of the
string into the ring buffer that is needed.
Link: https://lkml.kernel.org/r/20220705224751.080390002@goodmis.org
Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
[sven@narfation.org: add compat code]
Signed-off-by: Sven Eckelmann <sven@narfation.org>
---
Already added to
https://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace.git/commit/?h=for-next&id=013cfbccb0cb3bbac478666aed78e4f5f7e39dd6
compat-include/linux/tracepoint.h | 24 ++++++++++++++++++++++++
net/batman-adv/trace.h | 7 ++-----
2 files changed, 26 insertions(+), 5 deletions(-)
create mode 100644 compat-include/linux/tracepoint.h
diff --git a/compat-include/linux/tracepoint.h b/compat-include/linux/tracepoint.h
new file mode 100644
index 00000000..61df01a3
--- /dev/null
+++ b/compat-include/linux/tracepoint.h
@@ -0,0 +1,24 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/* Copyright (C) B.A.T.M.A.N. contributors:
+ *
+ * Marek Lindner, Simon Wunderlich
+ *
+ * This file contains macros for maintaining compatibility with older versions
+ * of the Linux kernel.
+ */
+
+#ifndef _NET_BATMAN_ADV_COMPAT_LINUX_TRACEPOINT_H_
+#define _NET_BATMAN_ADV_COMPAT_LINUX_TRACEPOINT_H_
+
+#include <linux/version.h>
+#include_next <linux/tracepoint.h>
+
+#if LINUX_VERSION_IS_LESS(5, 19, 0)
+
+#define __vstring(item, fmt, ap) __dynamic_array(char, item, 256)
+#define __assign_vstr(dst, fmt, va) \
+ WARN_ON_ONCE(vsnprintf(__get_dynamic_array(dst), 256, fmt, *va) >= 256)
+
+#endif /* LINUX_VERSION_IS_LESS(5, 19, 0) */
+
+#endif /* _NET_BATMAN_ADV_COMPAT_LINUX_TRACEPOINT_H_ */
diff --git a/net/batman-adv/trace.h b/net/batman-adv/trace.h
index d673ebdd..67d2a8a0 100644
--- a/net/batman-adv/trace.h
+++ b/net/batman-adv/trace.h
@@ -40,16 +40,13 @@ TRACE_EVENT(batadv_dbg,
TP_STRUCT__entry(
__string(device, bat_priv->soft_iface->name)
__string(driver, KBUILD_MODNAME)
- __dynamic_array(char, msg, BATADV_MAX_MSG_LEN)
+ __vstring(msg, vaf->fmt, vaf->va)
),
TP_fast_assign(
__assign_str(device, bat_priv->soft_iface->name);
__assign_str(driver, KBUILD_MODNAME);
- WARN_ON_ONCE(vsnprintf(__get_dynamic_array(msg),
- BATADV_MAX_MSG_LEN,
- vaf->fmt,
- *vaf->va) >= BATADV_MAX_MSG_LEN);
+ __assign_vstr(msg, vaf->fmt, vaf->va);
),
TP_printk(
--
2.30.2
reply other threads:[~2022-07-24 21:27 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20220724212719.92570-1-sven@narfation.org \
--to=sven@narfation.org \
--cc=b.a.t.m.a.n@lists.open-mesh.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).