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

Signed-off-by: Takuya Yoshikawa <yoshikawa_takuya...@lab.ntt.co.jp>
---
 virt/kvm/kvm_main.c |   18 ++++++++++--------
 1 files changed, 10 insertions(+), 8 deletions(-)

diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c
index d5e4bf9..f6c8cdc 100644
--- a/virt/kvm/kvm_main.c
+++ b/virt/kvm/kvm_main.c
@@ -782,14 +782,16 @@ int __kvm_set_memory_region(struct kvm *kvm,
        if (!npages && !old.npages)
                goto out;
 
-       /* Check for overlaps */
-       r = -EEXIST;
-       kvm_for_each_memslot(slot, kvm->memslots) {
-               if (slot->id >= KVM_USER_MEM_SLOTS || slot == memslot)
-                       continue;
-               if (!((base_gfn + npages <= slot->base_gfn) ||
-                     (base_gfn >= slot->base_gfn + slot->npages)))
-                       goto out;
+       if ((npages && !old.npages) || (base_gfn != old.base_gfn)) {
+               /* Check for overlaps */
+               r = -EEXIST;
+               kvm_for_each_memslot(slot, kvm->memslots) {
+                       if (slot->id >= KVM_USER_MEM_SLOTS || slot == memslot)
+                               continue;
+                       if (!((base_gfn + npages <= slot->base_gfn) ||
+                             (base_gfn >= slot->base_gfn + slot->npages)))
+                               goto out;
+               }
        }
 
        /* Free page dirty bitmap if unneeded */
-- 
1.7.5.4

--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to