KVM: Open code kvm_delete_memslot() into its only caller

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>
This commit is contained in:
Sean Christopherson 2021-12-06 20:54:08 +01:00 committed by Paolo Bonzini
parent afa319a54a
commit 47ea7d900b

View file

@ -1668,29 +1668,6 @@ static int kvm_set_memslot(struct kvm *kvm,
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;