From: Paolo Bonzini <pbonzini@redhat.com>
Date: Mon, 18 May 2015 06:35:43 +0000 (+0200)
Subject: KVM: mips: use id_to_memslot correctly
X-Git-Tag: firefly_0821_release~176^2~1591^2~69
X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=69a1220060c1523fd0515216eaa29e22f133b894;p=firefly-linux-kernel-4.4.55.git

KVM: mips: use id_to_memslot correctly

The argument to KVM_GET_DIRTY_LOG is a memslot id; it may not match the
position in the memslots array, which is sorted by gfn.

Cc: stable@vger.kernel.org
Reviewed-by: James Hogan <james.hogan@imgtec.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---

diff --git a/arch/mips/kvm/mips.c b/arch/mips/kvm/mips.c
index 71f345b499c8..a8e660a44474 100644
--- a/arch/mips/kvm/mips.c
+++ b/arch/mips/kvm/mips.c
@@ -982,7 +982,7 @@ int kvm_vm_ioctl_get_dirty_log(struct kvm *kvm, struct kvm_dirty_log *log)
 
 	/* If nothing is dirty, don't bother messing with page tables. */
 	if (is_dirty) {
-		memslot = &kvm->memslots->memslots[log->slot];
+		memslot = id_to_memslot(kvm->memslots, log->slot);
 
 		ga = memslot->base_gfn << PAGE_SHIFT;
 		ga_end = ga + (memslot->npages << PAGE_SHIFT);