diff options
| author | Jaidev Shastri <jaidevshastri@vt.edu> | 2026-09-21 21:07:23 -0400 |
|---|---|---|
| committer | Krzysztof Kozlowski <krzk@kernel.org> | 2026-10-03 15:45:52 +0200 |
| commit | 682df6e2330123019fcdb9f6122f34a395082356 (patch) | |
| tree | cb987f19f306cdcebebc88efd8a69c13a2dde422 /tools/perf/scripts/python/flamegraph.py | |
| parent | f7b2b6acf658be412b0c4746d07d210a9e18f13b (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/flamegraph.py')
0 files changed, 0 insertions, 0 deletions
