[PATCH v3 REPOST] USB: mtu3: tracing: fix pointers dereferencing
Sebastian Andrzej Siewior
bigeasy at linutronix.de
Tue Sep 15 07:35:05 PDT 2026
From: Marek Szyprowski <m.szyprowski at samsung.com>
Commit b5cc230af5e5 ("tracing: Warn when an event dereferences a pointer
in TP_printk()") added a warning when printing an event dereferences
a pointer, because it might be already freed at that time.
MTU3 driver is one of the drivers triggering this warning. Fix it by
storing the DMA address in the event structure to avoid dereferencing
gpd_ring pointer during event printing.
Fixes: 83374e035b62 ("usb: mtu3: add tracepoints to help debug")
Reviewed-by: Steven Rostedt <rostedt at goodmis.org>
Reviewed-by: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
Signed-off-by: Marek Szyprowski <m.szyprowski at samsung.com>
Signed-off-by: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
---
Could this please be routed via the USB tree?
v3:
- Repost
v2: https://lore.kernel.org/20260904083644.2010063-1-m.szyprowski@samsung.com
- fixed typos in commit description
v1: https://lore.kernel.org/all/20260804100531.88576-1-m.szyprowski@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 89870175d6356..b24c6411a8cf1 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',
--
2.55.0
More information about the linux-arm-kernel
mailing list