Message ID | 13184437244040-git-send-email-beckyb@kernel.crashing.org (mailing list archive) |
---|---|
State | Superseded, archived |
Delegated to: | Kumar Gala |
Headers | show |
On Oct 12, 2011, at 1:22 PM, Becky Bruce wrote: > From: Becky Bruce <beckyb@kernel.crashing.org> > > Currently, it does a cntlzd on the size and then subtracts it from > 21.... this doesn't take into account the varying size of a "long". > Just use __ilog instead (and subtract the 10 we have to subtract > to get to the tsize encoding). > > Signed-off-by: Becky Bruce <beckyb@kernel.crashing.org> > --- > arch/powerpc/mm/fsl_booke_mmu.c | 2 +- > 1 files changed, 1 insertions(+), 1 deletions(-) > > diff --git a/arch/powerpc/mm/fsl_booke_mmu.c b/arch/powerpc/mm/fsl_booke_mmu.c > index f7802c8..54897c0 100644 > --- a/arch/powerpc/mm/fsl_booke_mmu.c > +++ b/arch/powerpc/mm/fsl_booke_mmu.c > @@ -111,7 +111,7 @@ static void settlbcam(int index, unsigned long virt, phys_addr_t phys, > unsigned int tsize, lz; > > asm (PPC_CNTLZL "%0,%1" : "=r" (lz) : "r" (size)); > - tsize = 21 - lz; > + tsize = __ilog2(size) - 10; If you do this you don't need 'lz' or the asm() statement. > > #ifdef CONFIG_SMP > if ((flags & _PAGE_NO_CACHE) == 0) > -- > 1.5.6.5 > > _______________________________________________ > Linuxppc-dev mailing list > Linuxppc-dev@lists.ozlabs.org > https://lists.ozlabs.org/listinfo/linuxppc-dev
diff --git a/arch/powerpc/mm/fsl_booke_mmu.c b/arch/powerpc/mm/fsl_booke_mmu.c index f7802c8..54897c0 100644 --- a/arch/powerpc/mm/fsl_booke_mmu.c +++ b/arch/powerpc/mm/fsl_booke_mmu.c @@ -111,7 +111,7 @@ static void settlbcam(int index, unsigned long virt, phys_addr_t phys, unsigned int tsize, lz; asm (PPC_CNTLZL "%0,%1" : "=r" (lz) : "r" (size)); - tsize = 21 - lz; + tsize = __ilog2(size) - 10; #ifdef CONFIG_SMP if ((flags & _PAGE_NO_CACHE) == 0)