diff options
author | Paolo Bonzini <pbonzini@redhat.com> | 2018-10-05 09:39:53 +0200 |
---|---|---|
committer | Paolo Bonzini <pbonzini@redhat.com> | 2018-10-05 09:39:53 +0200 |
commit | cc906f07d7d569a30bb6f0baf8f80b2968353dc9 (patch) | |
tree | 5a0098288a77c5a4482dd3d820c8d22cd443c3d8 | |
parent | kvm: nVMX: fix entry with pending interrupt if APICv is enabled (diff) | |
parent | KVM: PPC: Book3S HV: Avoid crash from THP collapse during radix page fault (diff) | |
download | linux-dev-cc906f07d7d569a30bb6f0baf8f80b2968353dc9.tar.xz linux-dev-cc906f07d7d569a30bb6f0baf8f80b2968353dc9.zip |
Merge tag 'kvm-ppc-fixes-4.19-3' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc into kvm-master
Third set of PPC KVM fixes for 4.19
One patch here, fixing a potential host crash introduced (or at least
exacerbated) by a previous fix for corruption relating to radix guest
page faults and THP operations.
-rw-r--r-- | arch/powerpc/kvm/book3s_64_mmu_radix.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/arch/powerpc/kvm/book3s_64_mmu_radix.c b/arch/powerpc/kvm/book3s_64_mmu_radix.c index 933c574e1cf7..998f8d089ac7 100644 --- a/arch/powerpc/kvm/book3s_64_mmu_radix.c +++ b/arch/powerpc/kvm/book3s_64_mmu_radix.c @@ -646,6 +646,16 @@ int kvmppc_book3s_radix_page_fault(struct kvm_run *run, struct kvm_vcpu *vcpu, */ local_irq_disable(); ptep = __find_linux_pte(vcpu->arch.pgdir, hva, NULL, &shift); + /* + * If the PTE disappeared temporarily due to a THP + * collapse, just return and let the guest try again. + */ + if (!ptep) { + local_irq_enable(); + if (page) + put_page(page); + return RESUME_GUEST; + } pte = *ptep; local_irq_enable(); |