diff options
Diffstat (limited to 'virt/kvm/kvm_main.c')
-rw-r--r-- | virt/kvm/kvm_main.c | 9 |
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 | ||
79 | static inline int is_mmio_pfn(pfn_t pfn) | 80 | inline 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 | ||
583 | out_free: | 590 | out_free: |