drm/i915/gvt: Don't bother removing write-protection on to-be-deleted slot
authorSean Christopherson <seanjc@google.com>
Sat, 29 Jul 2023 01:35:23 +0000 (18:35 -0700)
committerPaolo Bonzini <pbonzini@redhat.com>
Thu, 31 Aug 2023 18:07:24 +0000 (14:07 -0400)
When handling a slot "flush", don't call back into KVM to drop write
protection for gfns in the slot.  Now that KVM rejects attempts to move
memory slots while KVMGT is attached, the only time a slot is "flushed"
is when it's being removed, i.e. the memslot and all its write-tracking
metadata is about to be deleted.

Reviewed-by: Yan Zhao <yan.y.zhao@intel.com>
Tested-by: Yongwei Ma <yongwei.ma@intel.com>
Reviewed-by: Zhi Wang <zhi.a.wang@intel.com>
Link: https://lore.kernel.org/r/20230729013535.1070024-18-seanjc@google.com
Signed-off-by: Sean Christopherson <seanjc@google.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
drivers/gpu/drm/i915/gvt/kvmgt.c

index e9276500435d2b72a3cd5f84f0c55ea262de6349..3ea3cb9eb599c5320c82f9480681873b6b1aaee1 100644 (file)
@@ -1630,14 +1630,8 @@ static void kvmgt_page_track_flush_slot(struct kvm *kvm,
 
        for (i = 0; i < slot->npages; i++) {
                gfn = slot->base_gfn + i;
-               if (kvmgt_gfn_is_write_protected(info, gfn)) {
-                       write_lock(&kvm->mmu_lock);
-                       kvm_slot_page_track_remove_page(kvm, slot, gfn,
-                                               KVM_PAGE_TRACK_WRITE);
-                       write_unlock(&kvm->mmu_lock);
-
+               if (kvmgt_gfn_is_write_protected(info, gfn))
                        kvmgt_protect_table_del(info, gfn);
-               }
        }
        mutex_unlock(&info->vgpu_lock);
 }