[PATCH] USB: mtu3: tracing: fix pointers dereferencing
Steven Rostedt
rostedt at goodmis.org
Thu Sep 3 07:22:09 PDT 2026
On Tue, 4 Aug 2026 12:05:30 +0200
Marek Szyprowski <m.szyprowski at samsung.com> wrote:
> Commit b5cc230af5e5 ("tracing: Warn when an event dereferences a pointer
> in TP_printk()") added a warning then printing an event dereferences
s/then/when/
> a pointer, because it might be already freed that time.
freed at that time
>
> MTU3 driver is one of the drivers triggering this warning. Fix it by
> storing also the DMA address in the event structure to avoid
s/also//
> dereferencing gpd_ring pointer during event printing.
>
> Fixes: 83374e035b62 ("usb: mtu3: add tracepoints to help debug")
> Signed-off-by: Marek Szyprowski <m.szyprowski at samsung.com>
> ---
> drivers/usb/mtu3/mtu3_trace.h | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/usb/mtu3/mtu3_trace.h b/drivers/usb/mtu3/mtu3_trace.h
> index 89870175d635..b24c6411a8cf 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 = __entry->gpd_ring->dma;
> ),
> TP_printk("%s: type %s maxp %d slot %d mult %d burst %d ring %p/%pad flags %c:%c%c%c:%c",
> __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,
> __entry->flags & MTU3_EP_ENABLED ? 'E' : 'e',
> __entry->flags & MTU3_EP_STALL ? 'S' : 's',
> __entry->flags & MTU3_EP_WEDGE ? 'W' : 'w',
Reviewed-by: Steven Rostedt <rostedt at goodmis.org>
Thanks for fixing this!
-- Steve
More information about the linux-arm-kernel
mailing list