]> git.itanic.dy.fi Git - linux-stable/commitdiff
riscv: Only check online cpus for emulated accesses
authorCharlie Jenkins <charlie@rivosinc.com>
Fri, 8 Mar 2024 18:25:56 +0000 (10:25 -0800)
committerSasha Levin <sashal@kernel.org>
Tue, 26 Mar 2024 22:17:32 +0000 (18:17 -0400)
[ Upstream commit 313130c62cf1fc410ac8730b291fd4fde582d032 ]

The unaligned access checker only sets valid values for online cpus.
Check for these values on online cpus rather than on present cpus.

Signed-off-by: Charlie Jenkins <charlie@rivosinc.com>
Reviewed-by: Conor Dooley <conor.dooley@microchip.com>
Fixes: 71c54b3d169d ("riscv: report misaligned accesses emulation to hwprobe")
Tested-by: Samuel Holland <samuel.holland@sifive.com>
Link: https://lore.kernel.org/r/20240308-disable_misaligned_probe_config-v9-2-a388770ba0ce@rivosinc.com
Signed-off-by: Palmer Dabbelt <palmer@rivosinc.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
arch/riscv/kernel/traps_misaligned.c

index 8ded225e8c5b1313d800c8f87878212c48c9b250..c2ed4e689bf96d5d31a081ce4ab04483599dac8f 100644 (file)
@@ -632,7 +632,7 @@ void unaligned_emulation_finish(void)
         * accesses emulated since tasks requesting such control can run on any
         * CPU.
         */
-       for_each_present_cpu(cpu) {
+       for_each_online_cpu(cpu) {
                if (per_cpu(misaligned_access_speed, cpu) !=
                                        RISCV_HWPROBE_MISALIGNED_EMULATED) {
                        return;