UP/DOWN shift loops will shift array in needed
direction and stop at place where new slot should
be placed regardless of old slot size.

Signed-off-by: Igor Mammedov <[email protected]>
---
 virt/kvm/kvm_main.c | 25 +++++++++++--------------
 1 file changed, 11 insertions(+), 14 deletions(-)

diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c
index 407277b..278ed65 100644
--- a/virt/kvm/kvm_main.c
+++ b/virt/kvm/kvm_main.c
@@ -679,20 +679,17 @@ static void update_memslots(struct kvm_memslots *slots,
        struct kvm_memory_slot *mslots = slots->memslots;
 
        WARN_ON(mslots[i].id != id);
-       if (new->npages < mslots[i].npages) {
-               while (i < KVM_MEM_SLOTS_NUM - 1 &&
-                      new->npages < mslots[i + 1].npages) {
-                       mslots[i] = mslots[i + 1];
-                       slots->id_to_index[mslots[i].id] = i;
-                       i++;
-               }
-       } else {
-               while (i > 0 &&
-                      new->npages > mslots[i - 1].npages) {
-                       mslots[i] = mslots[i - 1];
-                       slots->id_to_index[mslots[i].id] = i;
-                       i--;
-               }
+       while (i < KVM_MEM_SLOTS_NUM - 1 &&
+              new->npages < mslots[i + 1].npages) {
+               mslots[i] = mslots[i + 1];
+               slots->id_to_index[mslots[i].id] = i;
+               i++;
+       }
+       while (i > 0 &&
+              new->npages > mslots[i - 1].npages) {
+               mslots[i] = mslots[i - 1];
+               slots->id_to_index[mslots[i].id] = i;
+               i--;
        }
 
        mslots[i] = *new;
-- 
1.8.3.1

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to