KVM: Open code kvm_delete_memslot() into its only caller
authorSean Christopherson <seanjc@google.com>
Mon, 6 Dec 2021 19:54:08 +0000 (20:54 +0100)
committerPaolo Bonzini <pbonzini@redhat.com>
Wed, 8 Dec 2021 09:24:17 +0000 (04:24 -0500)
Fold kvm_delete_memslot() into __kvm_set_memory_region() to free up the
"kvm_delete_memslot()" name for use in a future helper.  The delete logic
isn't so complex/long that it truly needs a helper, and it will be
simplified a wee bit further in upcoming commits.

No functional change intended.

Signed-off-by: Sean Christopherson <seanjc@google.com>
Reviewed-by: Maciej S. Szmigiero <maciej.szmigiero@oracle.com>
Signed-off-by: Maciej S. Szmigiero <maciej.szmigiero@oracle.com>
Message-Id: <2887631c31a82947faa488ab72f55f8c68b7c194.1638817638.git.maciej.szmigiero@oracle.com>

virt/kvm/kvm_main.c

index 538fd57..af27308 100644 (file)
@@ -1668,29 +1668,6 @@ out_slots:
        return r;
 }
 
-static int kvm_delete_memslot(struct kvm *kvm,
-                             const struct kvm_userspace_memory_region *mem,
-                             struct kvm_memory_slot *old, int as_id)
-{
-       struct kvm_memory_slot new;
-
-       if (!old->npages)
-               return -EINVAL;
-
-       if (WARN_ON_ONCE(kvm->nr_memslot_pages < old->npages))
-               return -EIO;
-
-       memset(&new, 0, sizeof(new));
-       new.id = old->id;
-       /*
-        * This is only for debugging purpose; it should never be referenced
-        * for a removed memslot.
-        */
-       new.as_id = as_id;
-
-       return kvm_set_memslot(kvm, mem, &new, as_id, KVM_MR_DELETE);
-}
-
 /*
  * Allocate some memory and give it an address in the guest physical address
  * space.
@@ -1747,8 +1724,23 @@ int __kvm_set_memory_region(struct kvm *kvm,
                old.id = id;
        }
 
-       if (!mem->memory_size)
-               return kvm_delete_memslot(kvm, mem, &old, as_id);
+       if (!mem->memory_size) {
+               if (!old.npages)
+                       return -EINVAL;
+
+               if (WARN_ON_ONCE(kvm->nr_memslot_pages < old.npages))
+                       return -EIO;
+
+               memset(&new, 0, sizeof(new));
+               new.id = id;
+               /*
+                * This is only for debugging purpose; it should never be
+                * referenced for a removed memslot.
+                */
+               new.as_id = as_id;
+
+               return kvm_set_memslot(kvm, mem, &new, as_id, KVM_MR_DELETE);
+       }
 
        new.as_id = as_id;
        new.id = id;