]> www.infradead.org Git - users/hch/misc.git/commitdiff
riscv: Enable ARCH_HAVE_NMI_SAFE_CMPXCHG
authorPu Lehui <pulehui@huawei.com>
Fri, 11 Jul 2025 09:04:43 +0000 (09:04 +0000)
committerPaul Walmsley <pjw@kernel.org>
Thu, 18 Sep 2025 14:20:59 +0000 (08:20 -0600)
The implement of cmpxchg() in riscv is based on atomic primitives and
has NMI-safe features, so it can be used safely in the in_nmi context.
ftrace's ringbuffer relies on NMI-safe cmpxchg() in the NMI context.
Currently, in_nmi() is true when riscv kprobe is in trap-based mode, so
this config needs to be selected, otherwise kprobetrace will not be
available.

Signed-off-by: Pu Lehui <pulehui@huawei.com>
Reviewed-by: Alexandre Ghiti <alexghiti@rivosinc.com>
Tested-by: Alexandre Ghiti <alexghiti@rivosinc.com>
Link: https://lore.kernel.org/r/20250711090443.1688404-1-pulehui@huaweicloud.com
[pjw@kernel.org: moved to preserve alphabetical order]
Signed-off-by: Paul Walmsley <pjw@kernel.org>
arch/riscv/Kconfig

index 51dcd8eaa24356d947ebe0f1c4a701a3cfc6b757..715e59f1e287dcdbbf3ae0dd8dac2a80e3fe9143 100644 (file)
@@ -53,6 +53,7 @@ config RISCV
        select ARCH_HAS_TICK_BROADCAST if GENERIC_CLOCKEVENTS_BROADCAST
        select ARCH_HAS_UBSAN
        select ARCH_HAS_VDSO_ARCH_DATA if GENERIC_VDSO_DATA_STORE
+       select ARCH_HAVE_NMI_SAFE_CMPXCHG
        select ARCH_KEEP_MEMBLOCK if ACPI
        select ARCH_MHP_MEMMAP_ON_MEMORY_ENABLE if 64BIT && MMU
        select ARCH_OPTIONAL_KERNEL_RWX if ARCH_HAS_STRICT_KERNEL_RWX