KVM: set_memory_region: Don't check for overlaps unless we create or move a slot

Don't need the check for deleting an existing slot or just modifiying
the flags.

Reviewed-by: Marcelo Tosatti <mtosatti@redhat.com>
Signed-off-by: Takuya Yoshikawa <yoshikawa_takuya_b1@lab.ntt.co.jp>
Signed-off-by: Gleb Natapov <gleb@redhat.com>
This commit is contained in:
Takuya Yoshikawa 2013-01-11 18:26:55 +09:00 committed by Gleb Natapov
parent 0ea75e1d26
commit 0a706beefb

View file

@ -782,6 +782,7 @@ int __kvm_set_memory_region(struct kvm *kvm,
if (!npages && !old.npages) if (!npages && !old.npages)
goto out; goto out;
if ((npages && !old.npages) || (base_gfn != old.base_gfn)) {
/* Check for overlaps */ /* Check for overlaps */
r = -EEXIST; r = -EEXIST;
kvm_for_each_memslot(slot, kvm->memslots) { kvm_for_each_memslot(slot, kvm->memslots) {
@ -791,6 +792,7 @@ int __kvm_set_memory_region(struct kvm *kvm,
(base_gfn >= slot->base_gfn + slot->npages))) (base_gfn >= slot->base_gfn + slot->npages)))
goto out; goto out;
} }
}
/* Free page dirty bitmap if unneeded */ /* Free page dirty bitmap if unneeded */
if (!(new.flags & KVM_MEM_LOG_DIRTY_PAGES)) if (!(new.flags & KVM_MEM_LOG_DIRTY_PAGES))