• Paolo Bonzini's avatar
    KVM: guest_memfd: limit overzealous WARN · fa30b0dc
    Paolo Bonzini authored
    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: default avatarPaolo Bonzini <pbonzini@redhat.com>
    fa30b0dc
guest_memfd.c 12.4 KB