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.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c
index 63e661be040a..f42d5c2a396d 100644
--- a/virt/kvm/kvm_main.c
+++ b/virt/kvm/kvm_main.c
@@ -41,6 +41,7 @@
41#include <linux/pagemap.h> 41#include <linux/pagemap.h>
42#include <linux/mman.h> 42#include <linux/mman.h>
43#include <linux/swap.h> 43#include <linux/swap.h>
44#include <linux/intel-iommu.h>
44 45
45#include <asm/processor.h> 46#include <asm/processor.h>
46#include <asm/io.h> 47#include <asm/io.h>
@@ -76,7 +77,7 @@ static inline int valid_vcpu(int n)
76 return likely(n >= 0 && n < KVM_MAX_VCPUS); 77 return likely(n >= 0 && n < KVM_MAX_VCPUS);
77} 78}
78 79
79static inline int is_mmio_pfn(pfn_t pfn) 80inline int is_mmio_pfn(pfn_t pfn)
80{ 81{
81 if (pfn_valid(pfn)) 82 if (pfn_valid(pfn))
82 return PageReserved(pfn_to_page(pfn)); 83 return PageReserved(pfn_to_page(pfn));
@@ -578,6 +579,12 @@ int __kvm_set_memory_region(struct kvm *kvm,
578 } 579 }
579 580
580 kvm_free_physmem_slot(&old, &new); 581 kvm_free_physmem_slot(&old, &new);
582
583 /* map the pages in iommu page table */
584 r = kvm_iommu_map_pages(kvm, base_gfn, npages);
585 if (r)
586 goto out;
587
581 return 0; 588 return 0;
582 589
583out_free: 590out_free: