[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-changelog] [xen master] passthrough: share_p2m: fix build failure on ARM



commit 9bac5f5ccd8920d6a0ed624d54880677b10dc1a7
Author:     Julien Grall <julien.grall@xxxxxxxxxx>
AuthorDate: Wed Mar 11 14:05:25 2015 +0100
Commit:     Jan Beulich <jbeulich@xxxxxxxx>
CommitDate: Wed Mar 11 14:05:25 2015 +0100

    passthrough: share_p2m: fix build failure on ARM
    
    The commit 7978429 "iommu: fix usage of shared EPT/IOMMU page tables on
    PVH guests" breaks the hypervisor compilation on ARM.
    
    This is because the macro hap_enabled is not defined on ARM.
    
    On x86, the P2M can only be shared when hap is enabled and the user
    didn't deny it (via the command line). Those checks are done by
    iommu_use_hap_pt().
    
    On ARM, the macro iommu_use_hap_pt() is also defined. So move the
    if ( iommu_use_hap_pt(d) ) from the IOMMU drivers up to
    iommu_share_p2m_table.
    
    Suggested-by: Jan Beulich <jbeulich@xxxxxxxx>
    Signed-off-by: Julien Grall <julien.grall@xxxxxxxxxx>
    Reviewed-by: Ian Campbell <ian.campbell@xxxxxxxxxx>
---
 xen/drivers/passthrough/amd/iommu_map.c |    3 ---
 xen/drivers/passthrough/iommu.c         |    3 +--
 xen/drivers/passthrough/vtd/iommu.c     |    3 ---
 3 files changed, 1 insertions(+), 8 deletions(-)

diff --git a/xen/drivers/passthrough/amd/iommu_map.c 
b/xen/drivers/passthrough/amd/iommu_map.c
index 31dc05d..495ff5c 100644
--- a/xen/drivers/passthrough/amd/iommu_map.c
+++ b/xen/drivers/passthrough/amd/iommu_map.c
@@ -785,9 +785,6 @@ void amd_iommu_share_p2m(struct domain *d)
     struct page_info *p2m_table;
     mfn_t pgd_mfn;
 
-    if ( !iommu_use_hap_pt(d) )
-        return;
-
     pgd_mfn = pagetable_get_mfn(p2m_get_pagetable(p2m_get_hostp2m(d)));
     p2m_table = mfn_to_page(mfn_x(pgd_mfn));
 
diff --git a/xen/drivers/passthrough/iommu.c b/xen/drivers/passthrough/iommu.c
index 7fcbbb1..92ea26f 100644
--- a/xen/drivers/passthrough/iommu.c
+++ b/xen/drivers/passthrough/iommu.c
@@ -332,8 +332,7 @@ void iommu_share_p2m_table(struct domain* d)
 {
     const struct iommu_ops *ops = iommu_get_ops();
 
-    ASSERT( hap_enabled(d) );
-    if ( iommu_enabled )
+    if ( iommu_enabled && iommu_use_hap_pt(d) )
         ops->share_p2m(d);
 }
 
diff --git a/xen/drivers/passthrough/vtd/iommu.c 
b/xen/drivers/passthrough/vtd/iommu.c
index 48676c5..891b9e3 100644
--- a/xen/drivers/passthrough/vtd/iommu.c
+++ b/xen/drivers/passthrough/vtd/iommu.c
@@ -1789,9 +1789,6 @@ static void iommu_set_pgd(struct domain *d)
     struct hvm_iommu *hd  = domain_hvm_iommu(d);
     mfn_t pgd_mfn;
 
-    if ( !iommu_use_hap_pt(d) )
-        return;
-
     pgd_mfn = pagetable_get_mfn(p2m_get_pagetable(p2m_get_hostp2m(d)));
     hd->arch.pgd_maddr = pagetable_get_paddr(pagetable_from_mfn(pgd_mfn));
 }
--
generated by git-patchbot for /home/xen/git/xen.git#master

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.