From nobody Wed Sep 30 08:12:41 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-alma10-1.taild15c8.ts.net [100.103.45.18]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 9917E36C0D6 for ; Tue, 11 Aug 2026 19:31:14 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=100.103.45.18 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786476675; cv=none; b=Rn0u5l388AXa91v2WrmLd5D5AY8AMb2ajs6dgkYMMH8KwVfpgMH2I5QcJlzKLUw5TQWWjpYndO/qN6moe4ZPM51IhMLGvESXfdiYCHpMcL61XDxs1vWCKK4DdIO7AmdRVF/0uuMgMXLkMo0jy1mGTQwlH6h6qm3525IfANrPx9s= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786476675; c=relaxed/simple; bh=FVfnHkufZMqBftwS5lWkCYRvzat2zFwRH0phqV89Lno=; h=Message-ID:Date:From:To:Cc:Subject:References:MIME-Version: Content-Type; b=Uvp+oMtqBO37aPFCfukshQcxUGu4kuTS/1h6gPjKiLG4RsTtEVprliu1SVBINbssEVVC6DDvu4OvNkFa6P0bv8ayzqeIl74nVg2KOA0gy1GjXfLobR73viqMK0SfYIPTLySSmBrE8+AebemrDG3rmvyYGX+Npr89nfQP3WHoEck= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=nkhiiNaS; arc=none smtp.client-ip=100.103.45.18 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="nkhiiNaS" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 3DD9F1F000E9; Tue, 11 Aug 2026 19:31:14 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1786476674; bh=qzMqSZPwEHdb0+szDi1SH8X+HUnlhwjFG8pxlJe9+bg=; h=Date:From:To:Cc:Subject:References; b=nkhiiNaSvxFIy/Zk6UVL9m2QQi+s9Cnl/rJFBB9fFOVRtN2C6e41vxCuzD69fT8k2 YAr5xRGIDKihZA1+LiWd76zjBq3jw4WugJikGKgMeIN94a7g26SXgwj/rpvgmj7Vmo F7OwKejQWCbFi00s798EDU2dHQugFztV9rAWk4mjR9lLGjrrt1SqoV6PBAHBJp8gHa k63nBnvw6LwdMU8wGv4jvuwhjj0kUiwaqIYTebjs8EucgJaym27Uh2ws2QSj5NsGrv iDs/wZJBqt6bBcnvpPIrvzTOKAATZsKDaMpkNIQUSLaq+ysh6p3Cf4sQn8a5I0cCWi dRZoTGhLLzB8g== Received: from rostedt by gandalf with local (Exim 4.99.4) (envelope-from ) id 1wtsC6-00000002hYt-2sGe; Tue, 11 Aug 2026 15:31:26 -0400 Message-ID: <20260811193126.538775130@kernel.org> User-Agent: quilt/0.69 Date: Tue, 11 Aug 2026 15:31:01 -0400 From: Steven Rostedt To: linux-kernel@vger.kernel.org Cc: Masami Hiramatsu , Mark Rutland , Mathieu Desnoyers , Andrew Morton Subject: [for-next][PATCH 1/3] tracing/mmiotrace: Use trace_assign_type() in mmio_print_mark() References: <20260811193100.764585233@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: "Masami Hiramatsu (Google)" 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) Signed-off-by: Steven Rostedt --- 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 =3D iter->ent; - struct print_entry *print =3D (struct print_entry *)entry; - const char *msg =3D print->buf; + struct print_entry *print; + const char *msg; struct trace_seq *s =3D &iter->seq; unsigned long long t =3D ns2usecs(iter->ts); unsigned long usec_rem =3D do_div(t, USEC_PER_SEC); unsigned secs =3D (unsigned long)t; =20 + trace_assign_type(print, entry); + msg =3D print->buf; + /* The trailing newline must be in the message. */ trace_seq_printf(s, "MARK %u.%06lu %s", secs, usec_rem, msg); =20 --=20 2.53.0 From nobody Wed Sep 30 08:12:41 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-alma10-1.taild15c8.ts.net [100.103.45.18]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id CAB58376A19 for ; Tue, 11 Aug 2026 19:31:14 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=100.103.45.18 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786476676; cv=none; b=ABxId4ETAic+Uyh/0/6C3oQykZpZ6l3KA53ZlYdlMbqY9Lb66EgQlH3kcBMqQnCLUMNnBI86Y2xAKiKRlzgGz3WwDYemee8PVpsgesGEHgeOlNJW0vFTYsMVQW1ELxs6HO8WDqpUoE4l4Q4iEtyJQGlai0ccSbz4AJb9cw/Vkn4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786476676; c=relaxed/simple; bh=BY4YQhpOUyAN7E4k3VLSop2UZQB9d4JCPDHrRkV3pIM=; h=Message-ID:Date:From:To:Cc:Subject:References:MIME-Version: Content-Type; b=JRnNwJAuV6q86RE/+Lu8qLKjXk2ae3RumNvTC8ruNO+xrf53hG4zQ9G3qTgKfs/MhVREs+3VeOw2XVtgXQtmg5+iZeJXFrpOTk+1yWYRtO/GFqC68P2KTAwytVAuIkfAKZscUMWCdoXjVI/FLIhJ6yXGSiUwKXB4kR4xR0fQyPg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=bBmQOu6B; arc=none smtp.client-ip=100.103.45.18 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="bBmQOu6B" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 7B79A1F00A3E; Tue, 11 Aug 2026 19:31:14 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1786476674; bh=Mv6gS3L+WboEA7tuyxu9Cgk6QK1Q0EXMZEbKR5kFXDw=; h=Date:From:To:Cc:Subject:References; b=bBmQOu6B9LciMKfdpUilF3mOY1ge143HC2r4FMobkjiGNhOZXnJRDDpns67Xju9fs GjX4Bd9U2x0A2mIyAxOelLKyyVTSOhlTDZKRyLQXMcALvgdVCcAD1hOS88msSzpW/o V20trUpUqbLIq09XjAVT2Q/AggxmpUZwDMKVm/ig7if/Pel9pEp26/bx8Q1/w8jX8a IQBUYYs4thIFai6DvtQ7tX/00jqQgfTRJKkah9zzVxInaxcKaBUIh3/rCYjReMRlfY 9Qq/7B6BAulOoEafZ+moD9SuuvF8CnJterUhuUUvUMUsmPkqDcUu8vNX9x6O5IuwDV kx9/dnEx91pvg== Received: from rostedt by gandalf with local (Exim 4.99.4) (envelope-from ) id 1wtsC6-00000002hZO-3YTU; Tue, 11 Aug 2026 15:31:26 -0400 Message-ID: <20260811193126.703949368@kernel.org> User-Agent: quilt/0.69 Date: Tue, 11 Aug 2026 15:31:02 -0400 From: Steven Rostedt To: linux-kernel@vger.kernel.org Cc: Masami Hiramatsu , Mark Rutland , Mathieu Desnoyers , Andrew Morton , David Carlier Subject: [for-next][PATCH 2/3] tracing: Report every TP_printk double dereference References: <20260811193100.764585233@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: David Carlier 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 Signed-off-by: David Carlier Signed-off-by: Steven Rostedt --- 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, in= t len, ptr +=3D 5; for (; ptr < end; ptr++) { if (ptr[0] =3D=3D '-' && ptr[1] =3D=3D '>') { + pr_warn("TRACE EVENT ERROR: Event %s has double dereference in TP_prin= tk: %.*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; --=20 2.53.0 From nobody Wed Sep 30 08:12:41 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-alma10-1.taild15c8.ts.net [100.103.45.18]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id CAC41384242 for ; Tue, 11 Aug 2026 19:31:14 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=100.103.45.18 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786476676; cv=none; b=HqSqLoTJFnUKTaybg/1GYMVYn7xHOVhsTN796m9OTY1viKhrhIDxw/LXh7SDP7vzhi3sgle4+eljgY2Z/xz7Nj5/1PIBdvI8PU2NaBtYFJZVBi7xviMM0P4NImZ4EvM+OipovSZDsVFdkSANznDdKuh/hLbU34SsDueBZcfZHrw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786476676; c=relaxed/simple; bh=G83xXDloIf57S1yk0IuGDA5v2goMvLjdtmsVA/las00=; h=Message-ID:Date:From:To:Cc:Subject:References:MIME-Version: Content-Type; b=o5mHEEKmUkP1cnI+9fkRJmsaVZvPmznCdtpc77qmlTfTMjBehOdiDtiIlqbdJID30DAE0VjPMlQTS+UIzajvS3ynVZuquhBI7lKRZebqy9RZOX/8ox1Q7ilbNejuzM0eVz5mqYaHZTL3RXQpdqhtGGJeJKYXyTI4vLjnedMP61A= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=B2ss3fnv; arc=none smtp.client-ip=100.103.45.18 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="B2ss3fnv" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 904AB1F00A3F; Tue, 11 Aug 2026 19:31:14 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1786476674; bh=mQhPZxosPfEO/rAbnGl3tYC89DT9KJiRE19Gee772aU=; h=Date:From:To:Cc:Subject:References; b=B2ss3fnvpoCOJR/+po04f8VgNLwhBQcwyweHuQZBvC1ltsjfrtkwF2PKNEM1mhaQM g1dpxUlSBZVwF24qWiH4w7FtIAzJAlgcZNlrendCrynsrN4z7t91vWGIcb7+PmJOEY vgLQZT/WqB3eTnDPGwb+O87AQnqPUpWBXLYfWH4Vq1xSuGPkO1KORXUX8PaaJtVL7B w1h3Ga4Nxq7ygx9TjyL7CW3udgZuiw9QTtmDeIh+l09lzIlVoaYYxUVhsFNezeDgE2 KbEHZnKjyEm94jqTDLIqNQntmPkILPGhRmnxwJqVQdX/7ew9Vdos8xSDdwoqF5MMqS XItjqQRuouPyA== Received: from rostedt by gandalf with local (Exim 4.99.4) (envelope-from ) id 1wtsC7-00000002hZs-03tT; Tue, 11 Aug 2026 15:31:27 -0400 Message-ID: <20260811193126.867492731@kernel.org> User-Agent: quilt/0.69 Date: Tue, 11 Aug 2026 15:31:03 -0400 From: Steven Rostedt To: linux-kernel@vger.kernel.org Cc: Masami Hiramatsu , Mark Rutland , Mathieu Desnoyers , Andrew Morton Subject: [for-next][PATCH 3/3] tracing: Cleanup event_enable_trigger_parse() by using __free() References: <20260811193100.764585233@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Steven Rostedt 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) Signed-off-by: Steven Rostedt --- 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_event= s_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) =3D NULL; struct event_trigger_data *trigger_data; struct trace_array *tr =3D file->tr; char *param, *filter; @@ -1803,17 +1803,13 @@ int event_enable_trigger_parse(struct event_command= *cmd_ops, enable_data->file =3D event_enable_file; =20 trigger_data =3D trigger_data_alloc(cmd_ops, cmd, param, enable_data); - if (!trigger_data) { - kfree(enable_data); + if (!trigger_data) return ret; - } =20 if (remove) { event_trigger_unregister(cmd_ops, file, glob+1, trigger_data); kfree(trigger_data); - kfree(enable_data); - ret =3D 0; - return ret; + return 0; } =20 /* 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; =20 + /* 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); =20 return ret; } --=20 2.53.0