powerpc/64: Simplify adaptation to new ISA v3.00 HPTE format
authorPaul Mackerras <paulus@ozlabs.org>
Fri, 11 Nov 2016 05:55:03 +0000 (16:55 +1100)
committerMichael Ellerman <mpe@ellerman.id.au>
Wed, 16 Nov 2016 04:43:25 +0000 (15:43 +1100)
commit6b243fcfb5f1e16bcf732e6f86a63f8af5b59a9f
tree6fbeef4f93392328128f56ce6bc2f822e8046547
parenta25f0944ba9b1d8a6813fd6f1a86f1bd59ac25a6
powerpc/64: Simplify adaptation to new ISA v3.00 HPTE format

This changes the way that we support the new ISA v3.00 HPTE format.
Instead of adapting everything that uses HPTE values to handle either
the old format or the new format, depending on which CPU we are on,
we now convert explicitly between old and new formats if necessary
in the low-level routines that actually access HPTEs in memory.
This limits the amount of code that needs to know about the new
format and makes the conversions explicit.  This is OK because the
old format contains all the information that is in the new format.

This also fixes operation under a hypervisor, because the H_ENTER
hypercall (and other hypercalls that deal with HPTEs) will continue
to require the HPTE value to be supplied in the old format.  At
present the kernel will not boot in HPT mode on POWER9 under a
hypervisor.

This fixes and partially reverts commit 50de596de8be
("powerpc/mm/hash: Add support for Power9 Hash", 2016-04-29).

Fixes: 50de596de8be ("powerpc/mm/hash: Add support for Power9 Hash")
Signed-off-by: Paul Mackerras <paulus@ozlabs.org>
Reviewed-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
arch/powerpc/include/asm/book3s/64/mmu-hash.h
arch/powerpc/mm/hash_native_64.c
arch/powerpc/platforms/ps3/htab.c
arch/powerpc/platforms/pseries/lpar.c