AMD IOMMU: remove currently non-functioning guest iommu feature
authorSuravee Suthikulpanit <suravee.suthikulpanit@amd.com>
Thu, 2 Jun 2016 11:12:35 +0000 (13:12 +0200)
committerJan Beulich <jbeulich@suse.com>
Thu, 2 Jun 2016 11:12:35 +0000 (13:12 +0200)
The guest IOMMU feature is currently not functioning. However,
the current guest_iommu_init() is causing issue when it tries to
register mmio handler because the it is currently called by the
following code path:

  arch/x86/domain.c: arch_domain_create()
    ]- drivers/passthrough/iommu.c: iommu_domain_init()
      |- drivers/passthrough/amd/pci_amd_iommu.c: amd_iommu_domain_init();
        |- drivers/passthrough/amd/iommu_guest.c: guest_iommu_init()

At this point, the hvm_domain_initialised() has not been called.
So register_mmio_handler() in guest_iommu_init() silently fails.

This patch removes the guest IOMMU feature for now until we can properly
support it.

Signed-off-by: Suravee Suthikulpanit <suravee.suthikulpanit@amd.com>
Reviewed-by: Paul Durrant <paul.durrant@citrix.com>
Release-acked-by: Wei Liu <wei.liu2@citrix.com>
xen/drivers/passthrough/amd/pci_amd_iommu.c

index 70b747585d0e033438d58c909edfad440c28e596..fce9827b00c638f955ac9548badb96db2c8499c9 100644 (file)
@@ -272,9 +272,6 @@ static int amd_iommu_domain_init(struct domain *d)
     hd->arch.paging_mode = is_hvm_domain(d) ?
                       IOMMU_PAGING_MODE_LEVEL_2 :
                       get_paging_mode(max_page);
-
-    guest_iommu_init(d);
-
     return 0;
 }
 
@@ -474,7 +471,6 @@ static void deallocate_iommu_page_tables(struct domain *d)
 
 static void amd_iommu_domain_destroy(struct domain *d)
 {
-    guest_iommu_destroy(d);
     deallocate_iommu_page_tables(d);
     amd_iommu_flush_all_pages(d);
 }