]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
spi/trace: Cap buffer contents at 64 bytes
authorNoralf Trønnes <noralf@tronnes.org>
Sat, 13 Apr 2019 20:48:55 +0000 (22:48 +0200)
committerMark Brown <broonie@kernel.org>
Thu, 2 May 2019 01:37:52 +0000 (10:37 +0900)
Large transfers (64kB) doesn't show up in the trace. Not sure why, but
since printk can only display buffers up to 64 bytes in length, we only
need to store the first 64 bytes.

Cc: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: Noralf Trønnes <noralf@tronnes.org>
Signed-off-by: Mark Brown <broonie@kernel.org>
include/trace/events/spi.h

index aef6869f563dfce8f0ce54bb7d417d8d141f6f44..0dd9171d2ad8e34a617d22bd8c6adc8a5c4432ab 100644 (file)
@@ -131,9 +131,11 @@ DECLARE_EVENT_CLASS(spi_transfer,
                __field(        struct spi_transfer *,   xfer   )
                __field(        int,            len             )
                __dynamic_array(u8, rx_buf,
-                               spi_valid_rxbuf(msg, xfer) ? xfer->len : 0)
+                               spi_valid_rxbuf(msg, xfer) ?
+                                       (xfer->len < 64 ? xfer->len : 64) : 0)
                __dynamic_array(u8, tx_buf,
-                               spi_valid_txbuf(msg, xfer) ? xfer->len : 0)
+                               spi_valid_txbuf(msg, xfer) ?
+                                       (xfer->len < 64 ? xfer->len : 64) : 0)
        ),
 
        TP_fast_assign(
@@ -144,11 +146,11 @@ DECLARE_EVENT_CLASS(spi_transfer,
 
                if (spi_valid_txbuf(msg, xfer))
                        memcpy(__get_dynamic_array(tx_buf),
-                              xfer->tx_buf, xfer->len);
+                              xfer->tx_buf, __get_dynamic_array_len(tx_buf));
 
                if (spi_valid_rxbuf(msg, xfer))
                        memcpy(__get_dynamic_array(rx_buf),
-                              xfer->rx_buf, xfer->len);
+                              xfer->rx_buf, __get_dynamic_array_len(rx_buf));
        ),
 
        TP_printk("spi%d.%d %p len=%d tx=[%*phD] rx=[%*phD]",