summaryrefslogtreecommitdiffstats
path: root/arch/powerpc/kvm/book3s_64_mmu_hv.c
diff options
context:
space:
mode:
authorTakuya Yoshikawa2012-07-02 10:54:30 +0200
committerMarcelo Tosatti2012-07-18 21:55:04 +0200
commitd19a748b1c42b133e9263e9023c1d162efa6f4ad (patch)
treeab8885d5e02b4a25adb9a8b72d16fc0620c9323c /arch/powerpc/kvm/book3s_64_mmu_hv.c
parentKVM: MMU: Use __gfn_to_rmap() to clean up kvm_handle_hva() (diff)
downloadkernel-qcow2-linux-d19a748b1c42b133e9263e9023c1d162efa6f4ad.tar.gz
kernel-qcow2-linux-d19a748b1c42b133e9263e9023c1d162efa6f4ad.tar.xz
kernel-qcow2-linux-d19a748b1c42b133e9263e9023c1d162efa6f4ad.zip
KVM: Introduce hva_to_gfn_memslot() for kvm_handle_hva()
This restricts hva handling in mmu code and makes it easier to extend kvm_handle_hva() so that it can treat a range of addresses later in this patch series. Signed-off-by: Takuya Yoshikawa <yoshikawa.takuya@oss.ntt.co.jp> Cc: Alexander Graf <agraf@suse.de> Cc: Paul Mackerras <paulus@samba.org> Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
Diffstat (limited to 'arch/powerpc/kvm/book3s_64_mmu_hv.c')
-rw-r--r--arch/powerpc/kvm/book3s_64_mmu_hv.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/arch/powerpc/kvm/book3s_64_mmu_hv.c b/arch/powerpc/kvm/book3s_64_mmu_hv.c
index d03eb6f7b058..37037553fe60 100644
--- a/arch/powerpc/kvm/book3s_64_mmu_hv.c
+++ b/arch/powerpc/kvm/book3s_64_mmu_hv.c
@@ -772,10 +772,10 @@ static int kvm_handle_hva(struct kvm *kvm, unsigned long hva,
end = start + (memslot->npages << PAGE_SHIFT);
if (hva >= start && hva < end) {
- gfn_t gfn_offset = (hva - start) >> PAGE_SHIFT;
+ gfn_t gfn = hva_to_gfn_memslot(hva, memslot);
+ gfn_t gfn_offset = gfn - memslot->base_gfn;
- ret = handler(kvm, &memslot->rmap[gfn_offset],
- memslot->base_gfn + gfn_offset);
+ ret = handler(kvm, &memslot->rmap[gfn_offset], gfn);
retval |= ret;
}
}