]> xenbits.xensource.com Git - people/royger/xen.git/commitdiff
amd-iommu: disable iommu_hap_pt_share with AMD IOMMUs
authorRoger Pau Monné <roger.pau@citrix.com>
Mon, 11 Aug 2014 12:57:09 +0000 (14:57 +0200)
committerJan Beulich <jbeulich@suse.com>
Mon, 11 Aug 2014 12:57:09 +0000 (14:57 +0200)
According to the comment in p2m.h, AMD IOMMUs don't work correctly
with page types different than p2m_ram_rw when the p2m is shared
between HAP and IOMMU, so disable this sharing when using AMD IOMMUs.

Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
Acked-by Suravee Suthikulpanit <suravee.suthikulpanit@amd.com>

xen/drivers/passthrough/amd/iommu_init.c

index b2f74ef000cefa2db9c360dcab784209bbdcb61e..56bda00afd0563f14a704a0cac46b82aa2265d51 100644 (file)
@@ -1255,6 +1255,14 @@ int __init amd_iommu_init(void)
     if ( iterate_ivrs_mappings(amd_iommu_setup_device_table) != 0 )
         goto error_out;
 
+    /*
+     * Disable sharing HAP page tables with AMD IOMMU,
+     * since it only supports p2m_ram_rw, and this would
+     * prevent doing IO to/from mapped grant frames.
+     */
+    iommu_hap_pt_share = 0;
+    printk(XENLOG_DEBUG "AMD-Vi: Disabled HAP memory map sharing with IOMMU\n");
+
     /* per iommu initialization  */
     for_each_amd_iommu ( iommu )
         if ( amd_iommu_init_one(iommu) != 0 )