From 42d9c75e8b9cae9583c228617be38ab1637fd574 Mon Sep 17 00:00:00 2001 From: Yury Norov Date: Wed, 6 May 2026 13:52:02 -0400 Subject: [PATCH] arch: select HAVE_ARCH_BITREVERSE conditionally on BITREVERSE Architectures may have bit reversal instructions, but if the API not needed, the corresponding option should not be selected because it may lead to generating the unneeded code. Signed-off-by: Yury Norov --- arch/arm/Kconfig | 2 +- arch/arm64/Kconfig | 2 +- arch/loongarch/Kconfig | 2 +- arch/mips/Kconfig | 2 +- lib/Kconfig | 1 + 5 files changed, 5 insertions(+), 4 deletions(-) diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index 71fc5dd4123f..0e963e54fe06 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig @@ -83,7 +83,7 @@ config ARM select HARDIRQS_SW_RESEND select HAS_IOPORT select HAVE_ARCH_AUDITSYSCALL if AEABI && !OABI_COMPAT - select HAVE_ARCH_BITREVERSE if (CPU_32v7M || CPU_32v7) && !CPU_32v6 + select HAVE_ARCH_BITREVERSE if (CPU_32v7M || CPU_32v7) && !CPU_32v6 && BITREVERSE select HAVE_ARCH_JUMP_LABEL if !XIP_KERNEL && !CPU_ENDIAN_BE32 && MMU && (!PREEMPT_RT || !SMP) select HAVE_ARCH_KFENCE if MMU && !XIP_KERNEL select HAVE_ARCH_KGDB if !CPU_ENDIAN_BE32 && MMU diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig index fe60738e5943..f5bb62c2ba9c 100644 --- a/arch/arm64/Kconfig +++ b/arch/arm64/Kconfig @@ -150,7 +150,7 @@ config ARM64 select HAVE_ACPI_APEI if (ACPI && EFI) select HAVE_ALIGNED_STRUCT_PAGE select HAVE_ARCH_AUDITSYSCALL - select HAVE_ARCH_BITREVERSE + select HAVE_ARCH_BITREVERSE if BITREVERSE select HAVE_ARCH_COMPILER_H select HAVE_ARCH_HUGE_VMALLOC select HAVE_ARCH_HUGE_VMAP diff --git a/arch/loongarch/Kconfig b/arch/loongarch/Kconfig index 606597da46b8..d6e1c8a734af 100644 --- a/arch/loongarch/Kconfig +++ b/arch/loongarch/Kconfig @@ -115,7 +115,7 @@ config LOONGARCH select HAS_IOPORT select HAVE_ALIGNED_STRUCT_PAGE if 64BIT select HAVE_ARCH_AUDITSYSCALL - select HAVE_ARCH_BITREVERSE if 64BIT + select HAVE_ARCH_BITREVERSE if 64BIT && BITREVERSE select HAVE_ARCH_JUMP_LABEL select HAVE_ARCH_JUMP_LABEL_RELATIVE select HAVE_ARCH_KASAN if 64BIT diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig index 4364f3dba688..7e1494e0dbfa 100644 --- a/arch/mips/Kconfig +++ b/arch/mips/Kconfig @@ -2026,7 +2026,7 @@ config CPU_MIPSR6 default y if CPU_MIPS32_R6 || CPU_MIPS64_R6 select CPU_HAS_RIXI select CPU_HAS_DIEI if !CPU_DIEI_BROKEN - select HAVE_ARCH_BITREVERSE + select HAVE_ARCH_BITREVERSE if BITREVERSE select MIPS_ASID_BITS_VARIABLE select MIPS_SPRAM diff --git a/lib/Kconfig b/lib/Kconfig index 00a9509636c1..d8e7e89ae320 100644 --- a/lib/Kconfig +++ b/lib/Kconfig @@ -58,6 +58,7 @@ config BITREVERSE config HAVE_ARCH_BITREVERSE bool default n + depends on BITREVERSE help This option enables the use of hardware bit-reversal instructions on architectures which support such operations.