On Wed, Oct 09, 2019 at 04:42:43PM +0800, Jia He wrote: > We unconditionally set the HW_AFDBM capability and only enable it on > CPUs which really have the feature. But sometimes we need to know > whether this cpu has the capability of HW AF. So decouple AF from > DBM by a new helper cpu_has_hw_af(). > > Signed-off-by: Jia He <justin.he@xxxxxxx> > Suggested-by: Suzuki Poulose <Suzuki.Poulose@xxxxxxx> > Reviewed-by: Catalin Marinas <catalin.marinas@xxxxxxx> I don't think I reviewed this version of the patch. > diff --git a/arch/arm64/include/asm/cpufeature.h b/arch/arm64/include/asm/cpufeature.h > index 9cde5d2e768f..1a95396ea5c8 100644 > --- a/arch/arm64/include/asm/cpufeature.h > +++ b/arch/arm64/include/asm/cpufeature.h > @@ -659,6 +659,20 @@ static inline u32 id_aa64mmfr0_parange_to_phys_shift(int parange) > default: return CONFIG_ARM64_PA_BITS; > } > } > + > +/* Check whether hardware update of the Access flag is supported */ > +static inline bool cpu_has_hw_af(void) > +{ > + if (IS_ENABLED(CONFIG_ARM64_HW_AFDBM)) { Please just return early here to avoid unnecessary indentation: if (!IS_ENABLED(CONFIG_ARM64_HW_AFDBM)) return false; > + u64 mmfr1 = read_cpuid(ID_AA64MMFR1_EL1); > + > + return !!cpuid_feature_extract_unsigned_field(mmfr1, > + ID_AA64MMFR1_HADBS_SHIFT); No need for !!, the return type is a bool already. Anyway, apart from these nitpicks, the patch is fine you can keep my reviewed-by. If later we noticed a potential performance issue on this path, we can turn it into a static label as with other CPU features. -- Catalin