Message ID | 20230919092850.1940729-38-mark.rutland@arm.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | arm64: Remove cpus_have_const_cap() | expand |
On 19/09/2023 10:28, Mark Rutland wrote: > 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. Nit: The comment above __system_matches_cap() still mentions cpus_have_const_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. */ Kristina
On Tue, Oct 03, 2023 at 06:20:25PM +0100, Kristina Martsenko wrote: > On 19/09/2023 10:28, Mark Rutland wrote: > > 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. > > Nit: The comment above __system_matches_cap() still mentions > cpus_have_const_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. > */ Thanks! I missed that when grepping for cpus_have_const_cap(). Given we have a number of ways to check the cpucaps, I've deleted the last line in its entirety. Mark.
diff --git a/arch/arm64/include/asm/cpufeature.h b/arch/arm64/include/asm/cpufeature.h index 4deaa94de36e8..96cc1850589d1 100644 --- a/arch/arm64/include/asm/cpufeature.h +++ b/arch/arm64/include/asm/cpufeature.h @@ -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) {
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. Signed-off-by: Mark Rutland <mark.rutland@arm.com> Cc: Catalin Marinas <catalin.marinas@arm.com> Cc: Suzuki K Poulose <suzuki.poulose@arm.com> Cc: Will Deacon <will@kernel.org> --- arch/arm64/include/asm/cpufeature.h | 38 ++--------------------------- 1 file changed, 2 insertions(+), 36 deletions(-)