target-ppc: Helper to determine page size information from hpte alone
commit1114e712c998d6c6d888e8a22aab94e143ae3fd8
authorDavid Gibson <david@gibson.dropbear.id.au>
Wed, 27 Jan 2016 01:01:20 +0000 (27 12:01 +1100)
committerDavid Gibson <david@gibson.dropbear.id.au>
Sat, 30 Jan 2016 12:49:27 +0000 (30 23:49 +1100)
tree3dbd651703d54b6f26135d1990c648b607c9d860
parent61a36c9b5a12889994e6c45f4a175efcd63936db
target-ppc: Helper to determine page size information from hpte alone

h_enter() in the spapr code needs to know the page size of the HPTE it's
about to insert.  Unlike other paths that do this, it doesn't have access
to the SLB, so at the moment it determines this with some open-coded
tests which assume POWER7 or POWER8 page size encodings.

To make this more flexible add ppc_hash64_hpte_page_shift_noslb() to
determine both the "base" page size per segment, and the individual
effective page size from an HPTE alone.

This means that the spapr code should now be able to handle any page size
listed in the env->sps table.

Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Acked-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Reviewed-by: Alexander Graf <agraf@suse.de>
hw/ppc/spapr_hcall.c
target-ppc/mmu-hash64.c
target-ppc/mmu-hash64.h