[PATCH -V2 11/26] powerpc: Fix hpte_decode to use the correct decoding for page sizes

Paul Mackerras paulus at samba.org
Wed Mar 13 13:56:14 EST 2013

On Wed, Mar 06, 2013 at 11:40:12AM +0530, Aneesh Kumar K.V wrote:
> From: "Aneesh Kumar K.V" <aneesh.kumar at linux.vnet.ibm.com>
> As per ISA doc, we encode base and actual page size in the LP bits of
> PTE. The number of bit used to encode the page sizes depend on actual
> page size.  ISA doc lists this as
>    PTE LP     actual page size
> rrrr rrrz 	≥8KB
> rrrr rrzz	≥16KB
> rrrr rzzz 	≥32KB
> rrrr zzzz 	≥64KB
> rrrz zzzz 	≥128KB
> rrzz zzzz 	≥256KB
> rzzz zzzz	≥512KB
> zzzz zzzz 	≥1MB
> ISA doc also says
> "The values of the “z” bits used to specify each size, along with all possible
> values of “r” bits in the LP field, must result in LP values distinct from
> other LP values for other sizes."
> based on the above update hpte_decode to use the correct decoding for LP bits.
> Signed-off-by: Aneesh Kumar K.V <aneesh.kumar at linux.vnet.ibm.com>
> +				shift = mmu_psize_defs[a_size].shift -
> +					mmu_psize_defs[MMU_PAGE_4K].shift;

"mmu_psize_defs[MMU_PAGE_4K].shift" seems like an overly complicated
way to write "LP_SHIFT" (or even "12").  After all, you did:

> +	unsigned int lp = (hpte->r >> LP_SHIFT) & ((1 << LP_BITS) - 1);

earlier.  If LP_SHIFT is good enough in that expression it's good
enough when calculating shift.

Apart from that minor nit,

Acked-by: Paul Mackerras <paulus at samba.org>

More information about the Linuxppc-dev mailing list