* [for-next][PATCH 0/3] tracing: Updates for v7.3
@ 2026-08-11 19:31 Steven Rostedt
2026-08-11 19:31 ` [for-next][PATCH 1/3] tracing/mmiotrace: Use trace_assign_type() in mmio_print_mark() Steven Rostedt
` (2 more replies)
0 siblings, 3 replies; 4+ messages in thread
From: Steven Rostedt @ 2026-08-11 19:31 UTC (permalink / raw)
To: linux-kernel
Cc: Masami Hiramatsu, Mark Rutland, Mathieu Desnoyers, Andrew Morton
git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace.git
trace/for-next
Head SHA1: a8aaf7445bfcdb6e61ee4b8e4946d684c1b4a228
David Carlier (1):
tracing: Report every TP_printk double dereference
Masami Hiramatsu (Google) (1):
tracing/mmiotrace: Use trace_assign_type() in mmio_print_mark()
Steven Rostedt (1):
tracing: Cleanup event_enable_trigger_parse() by using __free()
----
kernel/trace/trace_events.c | 2 ++
kernel/trace/trace_events_trigger.c | 16 ++++++++--------
kernel/trace/trace_mmiotrace.c | 7 +++++--
3 files changed, 15 insertions(+), 10 deletions(-)
^ permalink raw reply [flat|nested] 4+ messages in thread
* [for-next][PATCH 1/3] tracing/mmiotrace: Use trace_assign_type() in mmio_print_mark()
2026-08-11 19:31 [for-next][PATCH 0/3] tracing: Updates for v7.3 Steven Rostedt
@ 2026-08-11 19:31 ` Steven Rostedt
2026-08-11 19:31 ` [for-next][PATCH 2/3] tracing: Report every TP_printk double dereference Steven Rostedt
2026-08-11 19:31 ` [for-next][PATCH 3/3] tracing: Cleanup event_enable_trigger_parse() by using __free() Steven Rostedt
2 siblings, 0 replies; 4+ messages in thread
From: Steven Rostedt @ 2026-08-11 19:31 UTC (permalink / raw)
To: linux-kernel
Cc: Masami Hiramatsu, Mark Rutland, Mathieu Desnoyers, Andrew Morton
From: "Masami Hiramatsu (Google)" <mhiramat@kernel.org>
In mmio_print_mark(), a raw C cast (struct print_entry *)entry is used to
obtain the print_entry pointer.
Use the standard trace_assign_type() macro instead, matching the usage in
mmio_print_rw() and mmio_print_map().
Link: https://patch.msgid.link/178524301013.56416.9116249028160618790.stgit@devnote2
Assisted-by: Antigravity:gemini-3.6-flash
Signed-off-by: Masami Hiramatsu (Google) <mhiramat@kernel.org>
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
---
kernel/trace/trace_mmiotrace.c | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/kernel/trace/trace_mmiotrace.c b/kernel/trace/trace_mmiotrace.c
index b88b8d9923ad..ebdba4f8d64f 100644
--- a/kernel/trace/trace_mmiotrace.c
+++ b/kernel/trace/trace_mmiotrace.c
@@ -243,13 +243,16 @@ static enum print_line_t mmio_print_map(struct trace_iterator *iter)
static enum print_line_t mmio_print_mark(struct trace_iterator *iter)
{
struct trace_entry *entry = iter->ent;
- struct print_entry *print = (struct print_entry *)entry;
- const char *msg = print->buf;
+ struct print_entry *print;
+ const char *msg;
struct trace_seq *s = &iter->seq;
unsigned long long t = ns2usecs(iter->ts);
unsigned long usec_rem = do_div(t, USEC_PER_SEC);
unsigned secs = (unsigned long)t;
+ trace_assign_type(print, entry);
+ msg = print->buf;
+
/* The trailing newline must be in the message. */
trace_seq_printf(s, "MARK %u.%06lu %s", secs, usec_rem, msg);
--
2.53.0
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [for-next][PATCH 2/3] tracing: Report every TP_printk double dereference
2026-08-11 19:31 [for-next][PATCH 0/3] tracing: Updates for v7.3 Steven Rostedt
2026-08-11 19:31 ` [for-next][PATCH 1/3] tracing/mmiotrace: Use trace_assign_type() in mmio_print_mark() Steven Rostedt
@ 2026-08-11 19:31 ` Steven Rostedt
2026-08-11 19:31 ` [for-next][PATCH 3/3] tracing: Cleanup event_enable_trigger_parse() by using __free() Steven Rostedt
2 siblings, 0 replies; 4+ messages in thread
From: Steven Rostedt @ 2026-08-11 19:31 UTC (permalink / raw)
To: linux-kernel
Cc: Masami Hiramatsu, Mark Rutland, Mathieu Desnoyers, Andrew Morton,
David Carlier
From: David Carlier <devnexen@gmail.com>
WARN_ONCE() splats once per call site, so only the first offending event
registered is ever reported. The tree currently has six:
ice_{rx,tx}_dim_template, two hfi1 txq events, mtu3_ep and edma_log_io.
Whichever registers first hides the rest, and each has to be found again
on the next boot.
Add a pr_warn() next to the WARN_ONCE() so every offender is listed, the
same way test_event_printk() already pairs WARN_ON_ONCE() with pr_warn()
for unsafe %p* dereferences. The WARN_ONCE() stays so the condition still
fails tests and panics under panic_on_warn.
Link: https://patch.msgid.link/20260806215256.1680267-1-devnexen@gmail.com
Suggested-by: Steven Rostedt <rostedt@goodmis.org>
Signed-off-by: David Carlier <devnexen@gmail.com>
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
---
kernel/trace/trace_events.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/kernel/trace/trace_events.c b/kernel/trace/trace_events.c
index a8590d2394e3..ce902482ec7c 100644
--- a/kernel/trace/trace_events.c
+++ b/kernel/trace/trace_events.c
@@ -415,6 +415,8 @@ static void test_double_dereference(const char *str, int len,
ptr += 5;
for (; ptr < end; ptr++) {
if (ptr[0] == '-' && ptr[1] == '>') {
+ pr_warn("TRACE EVENT ERROR: Event %s has double dereference in TP_printk: %.*s\n",
+ trace_event_name(call), len, str);
WARN_ONCE(1, "Event %s has double dereference in TP_printk: %.*s\n",
trace_event_name(call), len, str);
return;
--
2.53.0
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [for-next][PATCH 3/3] tracing: Cleanup event_enable_trigger_parse() by using __free()
2026-08-11 19:31 [for-next][PATCH 0/3] tracing: Updates for v7.3 Steven Rostedt
2026-08-11 19:31 ` [for-next][PATCH 1/3] tracing/mmiotrace: Use trace_assign_type() in mmio_print_mark() Steven Rostedt
2026-08-11 19:31 ` [for-next][PATCH 2/3] tracing: Report every TP_printk double dereference Steven Rostedt
@ 2026-08-11 19:31 ` Steven Rostedt
2 siblings, 0 replies; 4+ messages in thread
From: Steven Rostedt @ 2026-08-11 19:31 UTC (permalink / raw)
To: linux-kernel
Cc: Masami Hiramatsu, Mark Rutland, Mathieu Desnoyers, Andrew Morton
From: Steven Rostedt <rostedt@goodmis.org>
The enable_data variable gets freed on most error paths in
event_enable_trigger_parse(). Use free() to free it and just before
returning normally, call retain_and_null_ptr(enable_data) just before a
successful exit to keep it from being freed. On success, the enable_data
is assigned to the trigger_data->private_data field.
Also add a comment to why event_trigger_free(trigger_data) is being called
before a successful exit.
Link: https://patch.msgid.link/20260807113558.0ff14e96@gandalf.local.home
Reviewed-by: Masami Hiramatsu (Google) <mhiramat@kernel.org>
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
---
kernel/trace/trace_events_trigger.c | 16 ++++++++--------
1 file changed, 8 insertions(+), 8 deletions(-)
diff --git a/kernel/trace/trace_events_trigger.c b/kernel/trace/trace_events_trigger.c
index ad83419cb420..149300cc5e8a 100644
--- a/kernel/trace/trace_events_trigger.c
+++ b/kernel/trace/trace_events_trigger.c
@@ -1753,7 +1753,7 @@ int event_enable_trigger_parse(struct event_command *cmd_ops,
char *glob, char *cmd, char *param_and_filter)
{
struct trace_event_file *event_enable_file;
- struct enable_trigger_data *enable_data;
+ struct enable_trigger_data *enable_data __free(kfree) = NULL;
struct event_trigger_data *trigger_data;
struct trace_array *tr = file->tr;
char *param, *filter;
@@ -1803,17 +1803,13 @@ int event_enable_trigger_parse(struct event_command *cmd_ops,
enable_data->file = event_enable_file;
trigger_data = trigger_data_alloc(cmd_ops, cmd, param, enable_data);
- if (!trigger_data) {
- kfree(enable_data);
+ if (!trigger_data)
return ret;
- }
if (remove) {
event_trigger_unregister(cmd_ops, file, glob+1, trigger_data);
kfree(trigger_data);
- kfree(enable_data);
- ret = 0;
- return ret;
+ return 0;
}
/* Up the trigger_data count to make sure nothing frees it on failure */
@@ -1842,7 +1838,12 @@ int event_enable_trigger_parse(struct event_command *cmd_ops,
if (ret)
goto out_disable;
+ /* It's now safe to free the reference taken earlier */
event_trigger_free(trigger_data);
+
+ /* The enabled_data is assigned to trigger_data->private_data */
+ retain_and_null_ptr(enable_data);
+
return ret;
out_disable:
trace_event_enable_disable(event_enable_file, 0, 1);
@@ -1851,7 +1852,6 @@ int event_enable_trigger_parse(struct event_command *cmd_ops,
out_free:
event_trigger_reset_filter(cmd_ops, trigger_data);
event_trigger_free(trigger_data);
- kfree(enable_data);
return ret;
}
--
2.53.0
^ permalink raw reply related [flat|nested] 4+ messages in thread
end of thread, other threads:[~2026-08-11 19:31 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-08-11 19:31 [for-next][PATCH 0/3] tracing: Updates for v7.3 Steven Rostedt
2026-08-11 19:31 ` [for-next][PATCH 1/3] tracing/mmiotrace: Use trace_assign_type() in mmio_print_mark() Steven Rostedt
2026-08-11 19:31 ` [for-next][PATCH 2/3] tracing: Report every TP_printk double dereference Steven Rostedt
2026-08-11 19:31 ` [for-next][PATCH 3/3] tracing: Cleanup event_enable_trigger_parse() by using __free() Steven Rostedt
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.