Han, Weidong wrote:
Don't need to map mmio pages for iommu. When find mmio pages in
kvm_iommu_map_pages(), don't map them, and shouldn't return error due to
it's not an error. If return error (such as -EINVAL), device assigment
will fail.



I don't understand. Why don't we need to map mmio pages? We certainly don't want them emulated.

@@ -36,14 +36,13 @@ int kvm_iommu_map_pages(struct kvm *kvm,
 {
        gfn_t gfn = base_gfn;
        pfn_t pfn;
-       int i, r;
+       int i, r = 0;
        struct dmar_domain *domain = kvm->arch.intel_iommu_domain;
/* check if iommu exists and in use */
        if (!domain)
                return 0;
- r = -EINVAL;
        for (i = 0; i < npages; i++) {
                /* check if already mapped */
                pfn = (pfn_t)intel_iommu_iova_to_pfn(domain,
@@ -60,13 +59,14 @@ int kvm_iommu_map_pages(struct kvm *kvm,
                                                     DMA_PTE_READ |
                                                     DMA_PTE_WRITE);
                        if (r) {
-                               printk(KERN_DEBUG "kvm_iommu_map_pages:"
+                               printk(KERN_ERR "kvm_iommu_map_pages:"
                                       "iommu failed to map pfn=%lx\n",
pfn);
                                goto unmap_pages;
                        }
                } else {
-                       printk(KERN_DEBUG "kvm_iommu_map_page:"
-                              "invalid pfn=%lx\n", pfn);
+                       printk(KERN_DEBUG "kvm_iommu_map_pages:"
+                              "invalid pfn=%lx, iommu needn't map "
+                              "MMIO pages!\n", pfn);
                        goto unmap_pages;
                }

If a slot has a mix of mmio and non-mmio pages, you will unmap the non-mmio pages, yet return no error.

--
error compiling committee.c: too many arguments to function

--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to