aboutsummaryrefslogtreecommitdiffstats
path: root/virt/kvm/kvm_main.c
diff options
context:
space:
mode:
Diffstat (limited to 'virt/kvm/kvm_main.c')
-rw-r--r--virt/kvm/kvm_main.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c
index 6bd34a6ecca1..9eb7936e491d 100644
--- a/virt/kvm/kvm_main.c
+++ b/virt/kvm/kvm_main.c
@@ -804,12 +804,13 @@ int __kvm_set_memory_region(struct kvm *kvm,
804 if (r) 804 if (r)
805 goto out_free; 805 goto out_free;
806 806
807 /* map the pages in iommu page table */ 807 /* map/unmap the pages in iommu page table */
808 if (npages) { 808 if (npages) {
809 r = kvm_iommu_map_pages(kvm, &new); 809 r = kvm_iommu_map_pages(kvm, &new);
810 if (r) 810 if (r)
811 goto out_free; 811 goto out_free;
812 } 812 } else
813 kvm_iommu_unmap_pages(kvm, &old);
813 814
814 r = -ENOMEM; 815 r = -ENOMEM;
815 slots = kmemdup(kvm->memslots, sizeof(struct kvm_memslots), 816 slots = kmemdup(kvm->memslots, sizeof(struct kvm_memslots),