Linux-ARM-Kernel Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] USB: mtu3: tracing: fix pointers dereferencing
       [not found] <CGME20260804100540eucas1p24c59c891e91eeeeea8032d1c80312ea3@eucas1p2.samsung.com>
@ 2026-08-04 10:05 ` Marek Szyprowski
  2026-09-03 14:14   ` Sebastian Andrzej Siewior
  2026-09-03 14:22   ` Steven Rostedt
  0 siblings, 2 replies; 3+ messages in thread
From: Marek Szyprowski @ 2026-08-04 10:05 UTC (permalink / raw)
  To: linux-usb, linux-arm-kernel, linux-mediatek, linux-kernel
  Cc: Marek Szyprowski, Chunfeng Yun, Greg Kroah-Hartman,
	Steven Rostedt

Commit b5cc230af5e5 ("tracing: Warn when an event dereferences a pointer
in TP_printk()") added a warning then printing an event dereferences
a pointer, because it might be already freed 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
dereferencing gpd_ring pointer during event printing.

Fixes: 83374e035b62 ("usb: mtu3: add tracepoints to help debug")
Signed-off-by: Marek Szyprowski <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 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',
-- 
2.43.0



^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH] USB: mtu3: tracing: fix pointers dereferencing
  2026-08-04 10:05 ` [PATCH] USB: mtu3: tracing: fix pointers dereferencing Marek Szyprowski
@ 2026-09-03 14:14   ` Sebastian Andrzej Siewior
  2026-09-03 14:22   ` Steven Rostedt
  1 sibling, 0 replies; 3+ messages in thread
From: Sebastian Andrzej Siewior @ 2026-09-03 14:14 UTC (permalink / raw)
  To: Marek Szyprowski, Greg Kroah-Hartman
  Cc: linux-usb, linux-arm-kernel, linux-mediatek, linux-kernel,
	Chunfeng Yun, Steven Rostedt

On 2026-08-04 12:05:30 [+0200], Marek Szyprowski wrote:
> Commit b5cc230af5e5 ("tracing: Warn when an event dereferences a pointer
> in TP_printk()") added a warning then printing an event dereferences
> a pointer, because it might be already freed 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
> dereferencing gpd_ring pointer during event printing.
> 
> Fixes: 83374e035b62 ("usb: mtu3: add tracepoints to help debug")
> Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>

Reviewed-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>

Just run into this, made the same fix :)

Sebastian


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] USB: mtu3: tracing: fix pointers dereferencing
  2026-08-04 10:05 ` [PATCH] USB: mtu3: tracing: fix pointers dereferencing Marek Szyprowski
  2026-09-03 14:14   ` Sebastian Andrzej Siewior
@ 2026-09-03 14:22   ` Steven Rostedt
  1 sibling, 0 replies; 3+ messages in thread
From: Steven Rostedt @ 2026-09-03 14:22 UTC (permalink / raw)
  To: Marek Szyprowski
  Cc: linux-usb, linux-arm-kernel, linux-mediatek, linux-kernel,
	Chunfeng Yun, Greg Kroah-Hartman

On Tue,  4 Aug 2026 12:05:30 +0200
Marek Szyprowski <m.szyprowski@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@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@goodmis.org>

Thanks for fixing this!

-- Steve


^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2026-09-03 14:21 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <CGME20260804100540eucas1p24c59c891e91eeeeea8032d1c80312ea3@eucas1p2.samsung.com>
2026-08-04 10:05 ` [PATCH] USB: mtu3: tracing: fix pointers dereferencing Marek Szyprowski
2026-09-03 14:14   ` Sebastian Andrzej Siewior
2026-09-03 14:22   ` Steven Rostedt

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox