]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
coresight: trbe: Add ISB after TRBLIMITR write
authorJames Clark <james.clark@linaro.org>
Mon, 9 Jun 2025 10:19:05 +0000 (11:19 +0100)
committerSuzuki K Poulose <suzuki.poulose@arm.com>
Tue, 2 Sep 2025 08:12:57 +0000 (09:12 +0100)
DEN0154 states that hardware will be allowed to ignore writes to TRB*
registers while the trace buffer is enabled. Add an ISB to ensure that
it's disabled before clearing the other registers.

This is purely defensive because it's expected that arm_trbe_disable()
would be called before teardown which has the required ISB.

Fixes: a2b579c41fe9 ("coresight: trbe: Remove redundant disable call")
Signed-off-by: James Clark <james.clark@linaro.org>
Reviewed-by: Yeoreum Yun <yeoreum.yun@arm.com>
Signed-off-by: Suzuki K Poulose <suzuki.poulose@arm.com>
Link: https://lore.kernel.org/r/20250609-james-cs-trblimitr-isb-v1-1-3a2aa4ee6770@linaro.org
drivers/hwtracing/coresight/coresight-trbe.c

index 8267dd1a2130d37d9507791620ea7bc8cbcd675c..10f3fb401edf6a00b24b38cdaa7c2865e7a191ac 100644 (file)
@@ -257,6 +257,7 @@ static void trbe_drain_and_disable_local(struct trbe_cpudata *cpudata)
 static void trbe_reset_local(struct trbe_cpudata *cpudata)
 {
        write_sysreg_s(0, SYS_TRBLIMITR_EL1);
+       isb();
        trbe_drain_buffer();
        write_sysreg_s(0, SYS_TRBPTR_EL1);
        write_sysreg_s(0, SYS_TRBBASER_EL1);