]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
riscv: switch set_icache_stale_mask() to using non-atomic assign_cpu()
authorYury Norov <yury.norov@gmail.com>
Thu, 13 Mar 2025 02:19:51 +0000 (22:19 -0400)
committerYury Norov <yury.norov@gmail.com>
Tue, 29 Apr 2025 19:58:37 +0000 (15:58 -0400)
The atomic cpumask_assign_cpu() follows non-atomic cpumask_setall(),
which makes the whole operation non-atomic. Fix this by relaxing to
non-atomic __assign_cpu().

Fixes: 7c1e5b9690b0e14 ("riscv: Disable preemption while handling PR_RISCV_CTX_SW_FENCEI_OFF")
Signed-off-by: Yury Norov [NVIDIA] <yury.norov@gmail.com>
arch/riscv/mm/cacheflush.c

index b8167272988723ecdda97a6aa528aab7cd55eada..b8e96dfff19dde15659f3b124ebb466490f8a1d2 100644 (file)
@@ -172,7 +172,7 @@ static void set_icache_stale_mask(void)
        stale_cpu = cpumask_test_cpu(cpu, mask);
 
        cpumask_setall(mask);
-       cpumask_assign_cpu(cpu, mask, stale_cpu);
+       __assign_cpu(cpu, mask, stale_cpu);
        put_cpu();
 }
 #endif