summaryrefslogtreecommitdiffstats
path: root/virt/kvm/kvm_main.c
diff options
context:
space:
mode:
authorIgor Mammedov <imammedo@redhat.com>2014-12-01 18:29:24 +0100
committerPaolo Bonzini <pbonzini@redhat.com>2014-12-04 15:29:09 +0100
commit7f379cff11fb9e00e0ff9eff8fbc39ddfd4b1bec (patch)
tree1d6d8facc9b31c5c34bf1cd161b5da5c8b7282ae /virt/kvm/kvm_main.c
parentkvm: update_memslots: drop not needed check for the same number of pages (diff)
downloadlinux-7f379cff11fb9e00e0ff9eff8fbc39ddfd4b1bec.tar.xz
linux-7f379cff11fb9e00e0ff9eff8fbc39ddfd4b1bec.zip
kvm: update_memslots: drop not needed check for the same slot
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 <imammedo@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'virt/kvm/kvm_main.c')
-rw-r--r--virt/kvm/kvm_main.c25
1 files changed, 11 insertions, 14 deletions
diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c
index 407277b33dc8..278ed65cc9c5 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;