From fc49666e811db269539bc9557608504b5f332bfb Mon Sep 17 00:00:00 2001 From: Julien Grall Date: Wed, 14 May 2014 10:49:17 +0200 Subject: [PATCH] passthrough: rework hwdom_pvh_reqs to use it also on ARM Hardware domain on ARM will have the same requirements as hwdom PVH when iommu is enabled. Both PVH and ARM guest has paging mode translate enabled, so Xen can use it to know if it needs to check the requirements. Rename the function and remove "pvh" word in the panic message. Signed-off-by: Julien Grall Acked-by: Jan Beulich Acked-by: Ian Campbell --- xen/drivers/passthrough/iommu.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/xen/drivers/passthrough/iommu.c b/xen/drivers/passthrough/iommu.c index 96a79cece5..ccb354d270 100644 --- a/xen/drivers/passthrough/iommu.c +++ b/xen/drivers/passthrough/iommu.c @@ -130,13 +130,17 @@ int iommu_domain_init(struct domain *d) return hd->platform_ops->init(d); } -static void __hwdom_init check_hwdom_pvh_reqs(struct domain *d) +static void __hwdom_init check_hwdom_reqs(struct domain *d) { + if ( !paging_mode_translate(d) ) + return; + if ( !iommu_enabled ) panic("Presently, iommu must be enabled for pvh dom0\n"); if ( iommu_passthrough ) - panic("For pvh dom0, dom0-passthrough must not be enabled\n"); + panic("Dom0 uses paging translated mode, dom0-passthrough must not be " + "enabled\n"); iommu_dom0_strict = 1; } @@ -145,8 +149,7 @@ void __hwdom_init iommu_hwdom_init(struct domain *d) { struct hvm_iommu *hd = domain_hvm_iommu(d); - if ( is_pvh_domain(d) ) - check_hwdom_pvh_reqs(d); + check_hwdom_reqs(d); if ( !iommu_enabled ) return; -- 2.30.2