[PATCH] arm64: cpufeature: Warn if we attempt to read a zero width field

Will Deacon will at kernel.org
Mon Mar 7 08:54:46 PST 2022


On Wed, Mar 02, 2022 at 01:47:02PM +0000, Mark Brown wrote:
> Add a WARN_ON_ONCE() when extracting a field if no width is specified. This
> should never happen outside of development since it will be triggered with
> or without the feature so long as the relevant ID register is present.
> 
> Suggested-by: Marc Zyngier <maz at kernel.org>
> Signed-off-by: Mark Brown <broonie at kernel.org>
> ---
>  arch/arm64/include/asm/cpufeature.h | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/arch/arm64/include/asm/cpufeature.h b/arch/arm64/include/asm/cpufeature.h
> index 2fe54369ac3f..4c8badfa9e8b 100644
> --- a/arch/arm64/include/asm/cpufeature.h
> +++ b/arch/arm64/include/asm/cpufeature.h
> @@ -577,6 +577,7 @@ static inline u64 arm64_ftr_reg_user_value(const struct arm64_ftr_reg *reg)
>  static inline int __attribute_const__
>  cpuid_feature_extract_field_width(u64 features, int field, int width, bool sign)
>  {
> +	WARN_ON_ONCE(!width);

I think this makes sense, but lets also override width to be 4 in this case,
as that is much more likely to "work" than 0. i.e.

	if (WARN_ON_ONCE(!width))
		width = 4;

Will



More information about the linux-arm-kernel mailing list