powerpc: Fix hpte_decode to use the correct decoding for page sizes
authorAneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
Sun, 28 Apr 2013 09:37:36 +0000 (09:37 +0000)
committerBenjamin Herrenschmidt <benh@kernel.crashing.org>
Tue, 30 Apr 2013 06:00:18 +0000 (16:00 +1000)
commit7e74c3921ad9610c0b49f28b8fc69f7480505841
treeb675a41480e84369e4d8406fe5fd7b05f35488dd
parentb1022fbd293564de91596b8775340cf41ad5214c
powerpc: Fix hpte_decode to use the correct decoding for page sizes

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.

Reviewed-by: David Gibson <david@gibson.dropbear.id.au>
Acked-by: Paul Mackerras <paulus@samba.org>
Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
arch/powerpc/mm/hash_native_64.c