KVM: PPC: Book3S HV: Fix VRMA initialization with 2MB or 1GB memory backing
authorPaul Mackerras <paulus@ozlabs.org>
Fri, 2 Mar 2018 04:38:04 +0000 (15:38 +1100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 30 May 2018 05:50:34 +0000 (07:50 +0200)
commitec12bb57cd0db96babc0ad5dbdf068f39643cfad
tree3021994e6f48bc0e758fd9f48a2eed187ff9892c
parentbe00ce584839c058d2eeabae0e104546b4bc4ddc
KVM: PPC: Book3S HV: Fix VRMA initialization with 2MB or 1GB memory backing

[ Upstream commit debd574f4195e205ba505b25e19b2b797f4bcd94 ]

The current code for initializing the VRMA (virtual real memory area)
for HPT guests requires the page size of the backing memory to be one
of 4kB, 64kB or 16MB.  With a radix host we have the possibility that
the backing memory page size can be 2MB or 1GB.  In these cases, if the
guest switches to HPT mode, KVM will not initialize the VRMA and the
guest will fail to run.

In fact it is not necessary that the VRMA page size is the same as the
backing memory page size; any VRMA page size less than or equal to the
backing memory page size is acceptable.  Therefore we now choose the
largest page size out of the set {4k, 64k, 16M} which is not larger
than the backing memory page size.

Signed-off-by: Paul Mackerras <paulus@ozlabs.org>
Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
arch/powerpc/kvm/book3s_hv.c