spi/trace: Cap buffer contents at 64 bytes

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>
This commit is contained in:
Noralf Trønnes
2019-04-13 22:48:55 +02:00
committed by Mark Brown
parent c9ba7a16d0
commit ed86bf8ef3

View File

@ -131,9 +131,11 @@ DECLARE_EVENT_CLASS(spi_transfer,
__field( struct spi_transfer *, xfer ) __field( struct spi_transfer *, xfer )
__field( int, len ) __field( int, len )
__dynamic_array(u8, rx_buf, __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, __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( TP_fast_assign(
@ -144,11 +146,11 @@ DECLARE_EVENT_CLASS(spi_transfer,
if (spi_valid_txbuf(msg, xfer)) if (spi_valid_txbuf(msg, xfer))
memcpy(__get_dynamic_array(tx_buf), 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)) if (spi_valid_rxbuf(msg, xfer))
memcpy(__get_dynamic_array(rx_buf), 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]", TP_printk("spi%d.%d %p len=%d tx=[%*phD] rx=[%*phD]",