Hi Catanlin
Thanks for the detailed explanation.
Will send out v12 soon after testing

--
Cheers,
Justin (Jia He)

 

> -----Original Message-----
> From: Catalin Marinas <[email protected]>
> Sent: Friday, October 11, 2019 6:39 PM
> To: Justin He (Arm Technology China) <[email protected]>
> Cc: Will Deacon <[email protected]>; Mark Rutland
> <[email protected]>; James Morse <[email protected]>; Marc
> Zyngier <[email protected]>; Matthew Wilcox <[email protected]>; Kirill A.
> Shutemov <[email protected]>; linux-arm-
> [email protected]; [email protected]; linux-
> [email protected]; Suzuki Poulose <[email protected]>; Borislav
> Petkov <[email protected]>; H. Peter Anvin <[email protected]>; [email protected];
> Thomas Gleixner <[email protected]>; Andrew Morton <akpm@linux-
> foundation.org>; [email protected]; Kaly Xin (Arm Technology China)
> <[email protected]>; nd <[email protected]>
> Subject: Re: [PATCH v11 1/4] arm64: cpufeature: introduce helper
> cpu_has_hw_af()
> 
> On Fri, Oct 11, 2019 at 01:16:36AM +0000, Justin He (Arm Technology China)
> wrote:
> > From: Catalin Marinas <[email protected]>
> > > 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

Reply via email to