KVM: PPC: Fix nested guest RC bits update
authorAlexey Kardashevskiy <aik@ozlabs.ru>
Thu, 11 Jun 2020 03:05:59 +0000 (13:05 +1000)
committerMichael Ellerman <mpe@ellerman.id.au>
Fri, 12 Jun 2020 06:19:53 +0000 (16:19 +1000)
Before commit 6cdf30375f82 ("powerpc/kvm/book3s: Use kvm helpers
to walk shadow or secondary table") we called __find_linux_pte() with
a page table pointer from a kvm_nested_guest struct but
now we rely on kvmhv_find_nested() which takes an L1 LPID and returns
a kvm_nested_guest pointer, however we pass a L0 LPID there and
the L2 guest hangs.

This fixes the LPID passed to kvmppc_hv_handle_set_rc().

Fixes: 6cdf30375f82 ("powerpc/kvm/book3s: Use kvm helpers to walk shadow or secondary table")
Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/20200611030559.75257-1-aik@ozlabs.ru
arch/powerpc/kvm/book3s_hv_nested.c

index 66c38ee..75993f4 100644 (file)
@@ -1234,7 +1234,7 @@ static long kvmhv_handle_nested_set_rc(struct kvm_vcpu *vcpu,
 
        /* Set the rc bit in the pte of the shadow_pgtable for the nest guest */
        ret = kvmppc_hv_handle_set_rc(kvm, true, writing,
-                                     n_gpa, gp->shadow_lpid);
+                                     n_gpa, gp->l1_lpid);
        if (!ret)
                ret = -EINVAL;
        else