From: Yury Norov Date: Thu, 13 Mar 2025 02:19:51 +0000 (-0400) Subject: riscv: switch set_icache_stale_mask() to using non-atomic assign_cpu() X-Git-Tag: v6.16-rc1~70^2~12 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=e5bf9a4b68fae70e41d1410656490d8ac00c02fe;p=thirdparty%2Flinux.git riscv: switch set_icache_stale_mask() to using non-atomic assign_cpu() 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] --- diff --git a/arch/riscv/mm/cacheflush.c b/arch/riscv/mm/cacheflush.c index b816727298872..b8e96dfff19dd 100644 --- a/arch/riscv/mm/cacheflush.c +++ b/arch/riscv/mm/cacheflush.c @@ -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