]> www.infradead.org Git - users/jedix/linux-maple.git/commit
KVM: guest_memfd: limit overzealous WARN
authorPaolo Bonzini <pbonzini@redhat.com>
Thu, 4 Apr 2024 17:25:19 +0000 (13:25 -0400)
committerPaolo Bonzini <pbonzini@redhat.com>
Fri, 10 May 2024 17:11:46 +0000 (13:11 -0400)
commitfa30b0dc91c815b9579d6f758437c35db059f5ae
tree51acc6bd9c71c5e6c44dc2ccef09edd7bc46542e
parent70623723778a5156a03bc6e601be5df8c1fddb75
KVM: guest_memfd: limit overzealous WARN

Because kvm_gmem_get_pfn() is called from the page fault path without
any of the slots_lock, filemap lock or mmu_lock taken, it is
possible for it to race with kvm_gmem_unbind().  This is not a
problem, as any PTE that is installed temporarily will be zapped
before the guest has the occasion to run.

However, it is not possible to have a complete unbind+bind
racing with the page fault, because deleting the memslot
will call synchronize_srcu_expedited() and wait for the
page fault to be resolved.  Thus, we can still warn if
the file is there and is not the one we expect.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
virt/kvm/guest_memfd.c