powerpc/kvm/book3s: Add helper for host page table walk
authorAneesh Kumar K.V <aneesh.kumar@linux.ibm.com>
Tue, 5 May 2020 07:17:19 +0000 (12:47 +0530)
committerMichael Ellerman <mpe@ellerman.id.au>
Tue, 5 May 2020 11:20:15 +0000 (21:20 +1000)
Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.ibm.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/20200505071729.54912-13-aneesh.kumar@linux.ibm.com
arch/powerpc/include/asm/kvm_book3s_64.h

index 2860521..1ca1f64 100644 (file)
@@ -647,6 +647,22 @@ static inline pte_t *find_kvm_secondary_pte(struct kvm *kvm, unsigned long ea,
        return pte;
 }
 
+static inline pte_t *find_kvm_host_pte(struct kvm *kvm, unsigned long mmu_seq,
+                                      unsigned long ea, unsigned *hshift)
+{
+       pte_t *pte;
+
+       VM_WARN(!spin_is_locked(&kvm->mmu_lock),
+               "%s called with kvm mmu_lock not held \n", __func__);
+
+       if (mmu_notifier_retry(kvm, mmu_seq))
+               return NULL;
+
+       pte = __find_linux_pte(kvm->mm->pgd, ea, NULL, hshift);
+
+       return pte;
+}
+
 extern pte_t *find_kvm_nested_guest_pte(struct kvm *kvm, unsigned long lpid,
                                        unsigned long ea, unsigned *hshift);