Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

riscv: Separate toolchain support dependency from RISCV_ISA_ZACAS

RV64 bpf is going to support ZACAS instructions. Let's separate
toolchain support dependency from RISCV_ISA_ZACAS.

Signed-off-by: Pu Lehui <pulehui@huawei.com>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Tested-by: Björn Töpel <bjorn@rivosinc.com>
Reviewed-by: Björn Töpel <bjorn@rivosinc.com>
Acked-by: Björn Töpel <bjorn@kernel.org>
Link: https://lore.kernel.org/bpf/20250719091730.2660197-5-pulehui@huaweicloud.com

authored by

Pu Lehui and committed by
Daniel Borkmann
ec74ae56 01422a4f

+5 -3
-1
arch/riscv/Kconfig
··· 714 714 715 715 config RISCV_ISA_ZACAS 716 716 bool "Zacas extension support for atomic CAS" 717 - depends on TOOLCHAIN_HAS_ZACAS 718 717 depends on RISCV_ALTERNATIVE 719 718 default y 720 719 help
+4 -2
arch/riscv/include/asm/cmpxchg.h
··· 133 133 ({ \ 134 134 if (IS_ENABLED(CONFIG_RISCV_ISA_ZABHA) && \ 135 135 IS_ENABLED(CONFIG_RISCV_ISA_ZACAS) && \ 136 + IS_ENABLED(CONFIG_TOOLCHAIN_HAS_ZACAS) && \ 136 137 riscv_has_extension_unlikely(RISCV_ISA_EXT_ZABHA) && \ 137 138 riscv_has_extension_unlikely(RISCV_ISA_EXT_ZACAS)) { \ 138 139 r = o; \ ··· 181 180 r, p, co, o, n) \ 182 181 ({ \ 183 182 if (IS_ENABLED(CONFIG_RISCV_ISA_ZACAS) && \ 183 + IS_ENABLED(CONFIG_TOOLCHAIN_HAS_ZACAS) && \ 184 184 riscv_has_extension_unlikely(RISCV_ISA_EXT_ZACAS)) { \ 185 185 r = o; \ 186 186 \ ··· 317 315 arch_cmpxchg_release((ptr), (o), (n)); \ 318 316 }) 319 317 320 - #if defined(CONFIG_64BIT) && defined(CONFIG_RISCV_ISA_ZACAS) 318 + #if defined(CONFIG_64BIT) && defined(CONFIG_RISCV_ISA_ZACAS) && defined(CONFIG_TOOLCHAIN_HAS_ZACAS) 321 319 322 320 #define system_has_cmpxchg128() riscv_has_extension_unlikely(RISCV_ISA_EXT_ZACAS) 323 321 ··· 353 351 #define arch_cmpxchg128_local(ptr, o, n) \ 354 352 __arch_cmpxchg128((ptr), (o), (n), "") 355 353 356 - #endif /* CONFIG_64BIT && CONFIG_RISCV_ISA_ZACAS */ 354 + #endif /* CONFIG_64BIT && CONFIG_RISCV_ISA_ZACAS && CONFIG_TOOLCHAIN_HAS_ZACAS */ 357 355 358 356 #ifdef CONFIG_RISCV_ISA_ZAWRS 359 357 /*
+1
arch/riscv/kernel/setup.c
··· 290 290 291 291 if (IS_ENABLED(CONFIG_RISCV_ISA_ZABHA) && 292 292 IS_ENABLED(CONFIG_RISCV_ISA_ZACAS) && 293 + IS_ENABLED(CONFIG_TOOLCHAIN_HAS_ZACAS) && 293 294 riscv_isa_extension_available(NULL, ZABHA) && 294 295 riscv_isa_extension_available(NULL, ZACAS)) { 295 296 using_ext = "using Zabha";