aboutsummaryrefslogtreecommitdiff
path: root/virt/kvm/iommu.c
diff options
context:
space:
mode:
authorSteven Rostedt (Red Hat) <rostedt@goodmis.org>2013-12-17 13:09:42 -0500
committerSteven Rostedt <rostedt@goodmis.org>2013-12-17 13:09:42 -0500
commit5af7f998909e5c73649a9f96cf2d4ace6affbaa5 (patch)
tree988bde645dfda5e314d99b03acc6fd3c0885f229 /virt/kvm/iommu.c
parent97e7e161945d7fa1c3641d6c2f7ec1e7ef7d2eb8 (diff)
parent108dd62e1e27b41c93fb30f8005552cf1dd2059c (diff)
Merge tag 'v3.8.13.14' into v3.8-rt
v3.8.13.14
Diffstat (limited to 'virt/kvm/iommu.c')
-rw-r--r--virt/kvm/iommu.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/virt/kvm/iommu.c b/virt/kvm/iommu.c
index 4a340cb23013..ba781f6cf64b 100644
--- a/virt/kvm/iommu.c
+++ b/virt/kvm/iommu.c
@@ -101,6 +101,10 @@ int kvm_iommu_map_pages(struct kvm *kvm, struct kvm_memory_slot *slot)
while ((gfn << PAGE_SHIFT) & (page_size - 1))
page_size >>= 1;
+ /* Make sure hva is aligned to the page size we want to map */
+ while (__gfn_to_hva_memslot(slot, gfn) & (page_size - 1))
+ page_size >>= 1;
+
/*
* Pin all pages we are about to map in memory. This is
* important because we unmap and unpin in 4kb steps later.