KVM: x86: remove unnecessary rmap walk of read-only memslots
authorAnthony Yznaga <anthony.yznaga@oracle.com>
Tue, 2 Jun 2020 20:07:28 +0000 (13:07 -0700)
committerPaolo Bonzini <pbonzini@redhat.com>
Thu, 4 Jun 2020 18:42:25 +0000 (14:42 -0400)
There's no write access to remove.  An existing memslot cannot be updated
to set or clear KVM_MEM_READONLY, and any mappings established in a newly
created or moved read-only memslot will already be read-only.

Signed-off-by: Anthony Yznaga <anthony.yznaga@oracle.com>
Message-Id: <1591128450-11977-2-git-send-email-anthony.yznaga@oracle.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
arch/x86/kvm/x86.c

index 9e41b51..e11e049 100644 (file)
@@ -10142,11 +10142,9 @@ int kvm_arch_prepare_memory_region(struct kvm *kvm,
 static void kvm_mmu_slot_apply_flags(struct kvm *kvm,
                                     struct kvm_memory_slot *new)
 {
-       /* Still write protect RO slot */
-       if (new->flags & KVM_MEM_READONLY) {
-               kvm_mmu_slot_remove_write_access(kvm, new, PG_LEVEL_4K);
+       /* Nothing to do for RO slots */
+       if (new->flags & KVM_MEM_READONLY)
                return;
-       }
 
        /*
         * Call kvm_x86_ops dirty logging hooks when they are valid.