Commit 47ea7d90 authored by Sean Christopherson's avatar Sean Christopherson Committed by Paolo Bonzini
Browse files

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: default avatarSean Christopherson <seanjc@google.com>
Reviewed-by: default avatarMaciej S. Szmigiero <maciej.szmigiero@oracle.com>
Signed-off-by: default avatarMaciej S. Szmigiero <maciej.szmigiero@oracle.com>
Message-Id: <2887631c31a82947faa488ab72f55f8c68b7c194.1638817638.git.maciej.szmigiero@oracle.com>
parent afa319a5
Loading
Loading
Loading
Loading
+17 −25
Original line number Diff line number Diff line
@@ -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;