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:
parent
afa319a54a
commit
47ea7d900b
|
@ -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;
|
||||
|
|
Loading…
Reference in New Issue