[PATCH 2/2] coresight: trbe: Order padding before publishing AUX head
Leo Yan
leo.yan at arm.com
Thu Oct 15 08:51:59 PDT 2026
TRBE fills gaps in the AUX buffer before advancing aux_head. Neither
perf_aux_output_skip() nor perf_aux_output_end() guarantees ordering of
these CPU stores before publishing the new head.
Add smp_wmb() after memset() in __trbe_pad_buf(). This covers alignment
padding published by perf_aux_output_skip() and the overwrite erratum
padding written by trbe_get_trace_size() before perf_aux_output_end().
Fixes: 3fbf7f011f24 ("coresight: sink: Add TRBE driver")
Assisted-by: LLM
Signed-off-by: Leo Yan <leo.yan at arm.com>
---
drivers/hwtracing/coresight/coresight-trbe.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/drivers/hwtracing/coresight/coresight-trbe.c b/drivers/hwtracing/coresight/coresight-trbe.c
index c7cbca45f2debd4047b93283ea9fe5dd9e1f2ebf..b605121b1dcfed9837c15cd92ff4c42515f39eaf 100644
--- a/drivers/hwtracing/coresight/coresight-trbe.c
+++ b/drivers/hwtracing/coresight/coresight-trbe.c
@@ -362,6 +362,8 @@ static void trbe_stop_and_truncate_event(struct perf_output_handle *handle)
static void __trbe_pad_buf(struct trbe_buf *buf, u64 offset, int len)
{
memset((void *)buf->trbe_base + offset, ETE_IGNORE_PACKET, len);
+ /* Order the padding stores before publishing the new aux_head. */
+ smp_wmb();
}
static void trbe_pad_buf(struct perf_output_handle *handle, int len)
--
2.34.1
More information about the linux-arm-kernel
mailing list