arm64: Remove cpus_have_const_cap()
authorMark Rutland <mark.rutland@arm.com>
Mon, 16 Oct 2023 10:25:01 +0000 (11:25 +0100)
committerCatalin Marinas <catalin.marinas@arm.com>
Mon, 16 Oct 2023 13:17:07 +0000 (14:17 +0100)
There are no longer any users of cpus_have_const_cap(), and therefore it
can be removed.

Remove cpus_have_const_cap(). At the same time, remove
__cpus_have_const_cap(), as this is a trivial wrapper of
alternative_has_cap_unlikely(), which can be used directly instead.

The comment for __system_matches_cap() is updated to no longer refer to
cpus_have_const_cap(). As we have a number of ways to check the cpucaps,
the specific suggestions are removed.

Signed-off-by: Mark Rutland <mark.rutland@arm.com>
Cc: Kristina Martsenko <kristina.martsenko@arm.com>
Cc: Suzuki K Poulose <suzuki.poulose@arm.com>
Cc: Will Deacon <will@kernel.org>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
arch/arm64/include/asm/cpufeature.h
arch/arm64/kernel/cpufeature.c

index e1f011f9ea20ac8c5f811e8c4bf888ec1b0d4587..396af9b9c857a3c1d1176c8d2bd94002f3a65073 100644 (file)
@@ -462,19 +462,6 @@ static __always_inline bool cpus_have_cap(unsigned int num)
        return arch_test_bit(num, system_cpucaps);
 }
 
-/*
- * Test for a capability without a runtime check.
- *
- * Before capabilities are finalized, this returns false.
- * After capabilities are finalized, this is patched to avoid a runtime check.
- *
- * @num must be a compile-time constant.
- */
-static __always_inline bool __cpus_have_const_cap(int num)
-{
-       return alternative_has_cap_unlikely(num);
-}
-
 /*
  * Test for a capability without a runtime check.
  *
@@ -487,7 +474,7 @@ static __always_inline bool __cpus_have_const_cap(int num)
 static __always_inline bool cpus_have_final_boot_cap(int num)
 {
        if (boot_capabilities_finalized())
-               return __cpus_have_const_cap(num);
+               return alternative_has_cap_unlikely(num);
        else
                BUG();
 }
@@ -504,32 +491,11 @@ static __always_inline bool cpus_have_final_boot_cap(int num)
 static __always_inline bool cpus_have_final_cap(int num)
 {
        if (system_capabilities_finalized())
-               return __cpus_have_const_cap(num);
+               return alternative_has_cap_unlikely(num);
        else
                BUG();
 }
 
-/*
- * Test for a capability, possibly with a runtime check for non-hyp code.
- *
- * For hyp code, this behaves the same as cpus_have_final_cap().
- *
- * For non-hyp code:
- * Before capabilities are finalized, this behaves as cpus_have_cap().
- * After capabilities are finalized, this is patched to avoid a runtime check.
- *
- * @num must be a compile-time constant.
- */
-static __always_inline bool cpus_have_const_cap(int num)
-{
-       if (is_hyp_code())
-               return cpus_have_final_cap(num);
-       else if (system_capabilities_finalized())
-               return __cpus_have_const_cap(num);
-       else
-               return cpus_have_cap(num);
-}
-
 static inline int __attribute_const__
 cpuid_feature_extract_signed_field_width(u64 features, int field, int width)
 {
index b131ce5698b686550a15f8750007a98a7eb62305..ad7ec30d3bd3086d985503843d9249cc3781c7c7 100644 (file)
@@ -3322,7 +3322,6 @@ EXPORT_SYMBOL_GPL(this_cpu_has_cap);
  * This helper function is used in a narrow window when,
  * - The system wide safe registers are set with all the SMP CPUs and,
  * - The SYSTEM_FEATURE system_cpucaps may not have been set.
- * In all other cases cpus_have_{const_}cap() should be used.
  */
 static bool __maybe_unused __system_matches_cap(unsigned int n)
 {