summaryrefslogtreecommitdiff
path: root/tools/perf/scripts/python/task-analyzer.py
diff options
context:
space:
mode:
authorJaidev Shastri <jaidevshastri@vt.edu>2026-09-21 21:07:23 -0400
committerKrzysztof Kozlowski <krzk@kernel.org>2026-10-03 15:45:52 +0200
commit682df6e2330123019fcdb9f6122f34a395082356 (patch)
treecb987f19f306cdcebebc88efd8a69c13a2dde422 /tools/perf/scripts/python/task-analyzer.py
parentf7b2b6acf658be412b0c4746d07d210a9e18f13b (diff)
soc: samsung: exynos-pmu: order pmu_base_addr before the pmu_context gate
exynos_sys_powerdown_conf() returns early while pmu_context is NULL and otherwise programs the PMU through pmu_raw_writel(), which uses the separate global pmu_base_addr. exynos_pmu_probe() maps pmu_base_addr and stores pmu_context afterwards, both with plain stores, and the reader loads both plainly. Neither the two stores nor the two loads are ordered. The callers are the Exynos cpuidle AFTR path and the suspend path on 32-bit Exynos, which run on other CPUs, so a caller that sees pmu_context before pmu_base_addr writes the power-down configuration through a NULL base. Publish pmu_context with smp_store_release() and read it with smp_load_acquire(). Found with MBCheck, a static herd7-based memory consistency checker. Signed-off-by: Jaidev Shastri <jaidevshastri@vt.edu> Link: https://patch.msgid.link/20260921-mb-exynos-pmu-v1-1-4babb522ce0d@vt.edu Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
Diffstat (limited to 'tools/perf/scripts/python/task-analyzer.py')
0 files changed, 0 insertions, 0 deletions