Re: [PATCH] powerpc/fsl-booke: Fix settlbcam for 64-bit
From: Kumar Gala <hidden>
Date: 2011-10-12 18:32:58
On Oct 12, 2011, at 1:22 PM, Becky Bruce wrote:
quoted hunk ↗ jump to hunk
From: Becky Bruce <redacted> =20 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). =20 Signed-off-by: Becky Bruce <redacted> --- arch/powerpc/mm/fsl_booke_mmu.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) =20diff --git a/arch/powerpc/mm/fsl_booke_mmu.c =
b/arch/powerpc/mm/fsl_booke_mmu.c
quoted hunk ↗ jump to hunk
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; =20 asm (PPC_CNTLZL "%0,%1" : "=3Dr" (lz) : "r" (size)); - tsize =3D 21 - lz; + tsize =3D __ilog2(size) - 10;
If you do this you don't need 'lz' or the asm() statement.
=20 #ifdef CONFIG_SMP if ((flags & _PAGE_NO_CACHE) =3D=3D 0) --=20 1.5.6.5 =20 _______________________________________________ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev