From: "Paul E. McKenney" <paulmck@kernel.org>
To: Steven Rostedt <rostedt@goodmis.org>
Cc: Vladimir Murzin <vladimir.murzin@arm.com>,
Chunfeng Yun <chunfeng.yun@mediatek.com>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
linux-usb@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
linux-mediatek@lists.infradead.org, linux-kernel@vger.kernel.org
Subject: Re: [BUG/PATCH] drivers/usb/mtu3: Work around mtu3_log_ep double-indirection issue
Date: Wed, 9 Sep 2026 08:14:40 -0700 [thread overview]
Message-ID: <0e929dba-7ff9-4d3e-800e-4a77dbd84c8b@paulmck-laptop> (raw)
In-Reply-To: <20260909093417.4880999e@gandalf.local.home>
On Wed, Sep 09, 2026 at 09:34:17AM -0400, Steven Rostedt wrote:
> On Tue, 8 Sep 2026 11:08:33 -0700
> "Paul E. McKenney" <paulmck@kernel.org> wrote:
>
> > > > Apparently, the code should instead create another entry in
> > > > TP_STRUCT__entry(), and do the double-indirection TP_fast_assign() instead
> > > > of TP_printk(). But simply removing the offending double indirection
> > > > in TP_printk() gets this splat out of the way of other debugging.
> > >
> > > Indeed, splat has gone after applying the patch.
> > >
> > > Thanks
> > > Vladimir
> >
> > Does this less hacky patch do the trick?
>
> Nope!
>
>
> > diff --git a/drivers/usb/mtu3/mtu3_trace.h b/drivers/usb/mtu3/mtu3_trace.h
> > index 89870175d63561..6477ad3ddc66f6 100644
> > --- a/drivers/usb/mtu3/mtu3_trace.h
> > +++ b/drivers/usb/mtu3/mtu3_trace.h
> > @@ -224,6 +224,7 @@ DECLARE_EVENT_CLASS(mtu3_log_ep,
> > __field(unsigned int, flags)
> > __field(unsigned int, direction)
> > __field(struct mtu3_gpd_ring *, gpd_ring)
> > + __field(dma_addr_t *, gpd_ring_dma)
> > ),
> > TP_fast_assign(
> > __assign_str(name);
> > @@ -235,12 +236,13 @@ DECLARE_EVENT_CLASS(mtu3_log_ep,
> > __entry->flags = mep->flags;
> > __entry->direction = mep->is_in;
> > __entry->gpd_ring = &mep->gpd_ring;
> > + __entry->gpd_ring_dma = &mep->gpd_ring->dma;
>
> You are still saving the address of some memory into the ring buffer.
>
>
> > ),
> > TP_printk("%s: type %s maxp %d slot %d mult %d burst %d ring %p/%pad flags %c:%c%c%c:%c",
> ^^^^
>
> That %pad dereferences the pointer passed to it.
>
> > __get_str(name), usb_ep_type_string(__entry->type),
> > __entry->maxp, __entry->slot,
> > __entry->mult, __entry->maxburst,
> > - __entry->gpd_ring, &__entry->gpd_ring->dma,
> > + __entry->gpd_ring, __entry->gpd_ring_dma,
>
> That will read the address saved in the ring buffer and dereference it.
>
> Remember, the above TP_fast_assign() logic gets executed when the
> tracepoint is triggered. The TP_printk() is executed when the user reads
> the trace buffer. That could be seconds, minutes, hours, days, even months
> later!
>
> You can't trust that the memory you are dereferencing will not be freed
> when the user reads the trace.
>
> The original patch is not hacky. It is actually the correct way of handling
> this.
Very well, "git revert" followed by "git cherry-pick" of the original.
Or someone can feel free to pull in the original from earlier in this
thread.
Either way, thank you!
Thanx, Paul
> -- Steve
>
>
> > __entry->flags & MTU3_EP_ENABLED ? 'E' : 'e',
> > __entry->flags & MTU3_EP_STALL ? 'S' : 's',
> > __entry->flags & MTU3_EP_WEDGE ? 'W' : 'w',
>
prev parent reply other threads:[~2026-09-09 15:14 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-03 23:59 Paul E. McKenney
2026-09-07 13:28 ` Vladimir Murzin
2026-09-08 18:08 ` Paul E. McKenney
2026-09-09 10:31 ` Vladimir Murzin
2026-09-09 13:35 ` Steven Rostedt
2026-09-21 14:00 ` Mark Rutland
2026-09-21 14:08 ` Steven Rostedt
2026-09-21 16:14 ` Paul E. McKenney
2026-09-22 10:40 ` Vladimir Murzin
2026-09-09 13:34 ` Steven Rostedt
2026-09-09 15:14 ` Paul E. McKenney [this message]
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=0e929dba-7ff9-4d3e-800e-4a77dbd84c8b@paulmck-laptop \
--to=paulmck@kernel.org \
--cc=chunfeng.yun@mediatek.com \
--cc=gregkh@linuxfoundation.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mediatek@lists.infradead.org \
--cc=linux-usb@vger.kernel.org \
--cc=rostedt@goodmis.org \
--cc=vladimir.murzin@arm.com \
/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
all inboxes | Powered by JetHome®