Commit f2c28120 authored by Mark Brown's avatar Mark Brown Committed by Will Deacon

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

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.  If
the warning triggers hope that the field was the standard 4 bits wide and
soldier on.
Suggested-by: default avatarMarc Zyngier <maz@kernel.org>
Signed-off-by: default avatarMark Brown <broonie@kernel.org>
Link: https://lore.kernel.org/r/20220307180900.3045812-1-broonie@kernel.orgSigned-off-by: default avatarWill Deacon <will@kernel.org>
parent b8fc7801
...@@ -577,6 +577,8 @@ static inline u64 arm64_ftr_reg_user_value(const struct arm64_ftr_reg *reg) ...@@ -577,6 +577,8 @@ static inline u64 arm64_ftr_reg_user_value(const struct arm64_ftr_reg *reg)
static inline int __attribute_const__ static inline int __attribute_const__
cpuid_feature_extract_field_width(u64 features, int field, int width, bool sign) cpuid_feature_extract_field_width(u64 features, int field, int width, bool sign)
{ {
if (WARN_ON_ONCE(!width))
width = 4;
return (sign) ? return (sign) ?
cpuid_feature_extract_signed_field_width(features, field, width) : cpuid_feature_extract_signed_field_width(features, field, width) :
cpuid_feature_extract_unsigned_field_width(features, field, width); cpuid_feature_extract_unsigned_field_width(features, field, width);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment