[PATCH] arm64: kernel: Replace manual computation with macro
Catalin Marinas
catalin.marinas at arm.com
Thu May 23 09:59:44 PDT 2024
On Thu, May 23, 2024 at 02:02:37PM +0100, Dave P Martin wrote:
> On Fri, May 17, 2024 at 04:31:12PM +0100, Catalin Marinas wrote:
> > On Fri, May 17, 2024 at 06:54:21PM +0530, Dev Jain wrote:
> > > diff --git a/arch/arm64/kernel/pi/map_range.c b/arch/arm64/kernel/pi/map_range.c
> > > index 5410b2cac590..4b145be7f846 100644
> > > --- a/arch/arm64/kernel/pi/map_range.c
> > > +++ b/arch/arm64/kernel/pi/map_range.c
> > > @@ -31,14 +31,14 @@ void __init map_range(u64 *pte, u64 start, u64 end, u64 pa, pgprot_t prot,
> > > {
> > > u64 cmask = (level == 3) ? CONT_PTE_SIZE - 1 : U64_MAX;
> > > u64 protval = pgprot_val(prot) & ~PTE_TYPE_MASK;
> > > - int lshift = (3 - level) * (PAGE_SHIFT - 3);
> > > - u64 lmask = (PAGE_SIZE << lshift) - 1;
> > > + int lshift = ARM64_HW_PGTABLE_LEVEL_SHIFT(level);
> > > + u64 lmask = ((u64)1 << lshift) - 1;
> >
> > Nitpick: you can use 1UL instead of (u64)1.
>
> Or, rather than reinventing this again, how about:
>
> #include <linux/bits.h>
>
> u64 lmask = GENMASK_ULL(lshift - 1, 0);
Even better. Thanks Dave.
--
Catalin
More information about the linux-arm-kernel
mailing list