]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
riscv: use lw when reading int cpu in asm_per_cpu
authorRadim Krčmář <rkrcmar@ventanamicro.com>
Fri, 25 Jul 2025 16:54:10 +0000 (18:54 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 9 Sep 2025 16:56:34 +0000 (18:56 +0200)
commit f4ea67a722e8c9e1fb8109adebb9fb881ff0793a upstream.

REG_L is wrong, because thread_info.cpu is 32-bit, not xlen-bit wide.
The struct currently has a hole after cpu, so little endian accesses
seemed fine.

Fixes: be97d0db5f44 ("riscv: VMAP_STACK overflow detection thread-safe")
Cc: stable@vger.kernel.org
Reviewed-by: Alexandre Ghiti <alexghiti@rivosinc.com>
Signed-off-by: Radim Krčmář <rkrcmar@ventanamicro.com>
Link: https://lore.kernel.org/r/20250725165410.2896641-5-rkrcmar@ventanamicro.com
Signed-off-by: Paul Walmsley <pjw@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
arch/riscv/include/asm/asm.h

index b5b84c6be01e16edc626b01fe3f22910e0a5f55f..da818b39a24cc4dc7c940f663b9acb8fa65b1d00 100644 (file)
@@ -90,7 +90,7 @@
 #endif
 
 .macro asm_per_cpu dst sym tmp
-       REG_L \tmp, TASK_TI_CPU_NUM(tp)
+       lw    \tmp, TASK_TI_CPU_NUM(tp)
        slli  \tmp, \tmp, PER_CPU_OFFSET_SHIFT
        la    \dst, __per_cpu_offset
        add   \dst, \dst, \tmp