target/ppc: correct htab shift for hash on radix
commite05fba5004676cd0fa7c47b623cb0a14ad1feed8
authorSam Bobroff <sam.bobroff@au1.ibm.com>
Mon, 6 Nov 2017 03:14:35 +0000 (6 14:14 +1100)
committerDavid Gibson <david@gibson.dropbear.id.au>
Mon, 13 Nov 2017 23:28:32 +0000 (14 10:28 +1100)
tree15dabce847f241baf40a3f8b50fa79b7224f8feb
parent4e8a737c092d25fe5ff99ac7bff01c222c1c017d
target/ppc: correct htab shift for hash on radix

KVM HV will soon support running a guest in hash mode on a POWER9 host
running in radix mode (see [1]), however the guest currently fails to
boot.

This is because the "htab_shift" value (the size of the MMU's hash
table) is added to the device tree before KVM has had a chance to
change it. If the host is in hash mode, KVM does not need to change it
and so the problem is not seen, but when the host is in radix mode a
change is required and we see a problem.

To fix this, move the call spapr_setup_hpt_and_vrma() (where
htab_shift could be changed) up a little so that it's called before
spapr_h_cas_compose_response() (where htab_shift is added to the
device tree).

Signed-off-by: Sam Bobroff <sam.bobroff@au1.ibm.com>
[1] See http://www.spinics.net/lists/kvm-ppc/msg13057.html
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
hw/ppc/spapr_hcall.c