On Fri, Oct 11, 2019 at 01:16:36AM +0000, Justin He (Arm Technology China) wrote: > From: Catalin Marinas <catalin.marinas@xxxxxxx> > > On Wed, Oct 09, 2019 at 04:42:43PM +0800, Jia He wrote: > > > + 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. > > But cpuid_feature_extract_unsigned_field has the return type "unsigned int" [1] > > [1] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/arm64/include/asm/cpufeature.h#n444 And the C language gives you the automatic conversion from unsigned int to bool without the need for !!. The reason we use !! in some places is for converting long to int (not bool) and losing the top 32-bit. See commit 84fe6826c28f ("arm64: mm: Add double logical invert to pte accessors") for an explanation. -- Catalin