Re: [Xen-devel] [PATCH] iommu: fix check for autotranslated hardware domain

2020-03-04 Thread Jan Beulich
On 04.03.2020 15:00, Roger Pau Monne wrote:
> The current position of the check_hwdom_reqs is wrong, as there's a
> is_iommu_enabled at the top of the function that will prevent getting
> to the check on systems without an IOMMU, because the hardware domain
> won't have the XEN_DOMCTL_CDF_iommu flag set.
> 
> Move the position of the check so it's done before the
> is_iommu_enabled one, and thus attempts to create a translated
> hardware domain without an IOMMU can be detected.
> 
> Fixes: f89f555827a ('remove late (on-demand) construction of IOMMU page 
> tables')
> Signed-off-by: Roger Pau Monné 

Reviewed-by: Jan Beulich 


___
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

[Xen-devel] [PATCH] iommu: fix check for autotranslated hardware domain

2020-03-04 Thread Roger Pau Monne
The current position of the check_hwdom_reqs is wrong, as there's a
is_iommu_enabled at the top of the function that will prevent getting
to the check on systems without an IOMMU, because the hardware domain
won't have the XEN_DOMCTL_CDF_iommu flag set.

Move the position of the check so it's done before the
is_iommu_enabled one, and thus attempts to create a translated
hardware domain without an IOMMU can be detected.

Fixes: f89f555827a ('remove late (on-demand) construction of IOMMU page tables')
Signed-off-by: Roger Pau Monné 
---
 xen/drivers/passthrough/iommu.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/xen/drivers/passthrough/iommu.c b/xen/drivers/passthrough/iommu.c
index cab7a068aa..dac1b58fa5 100644
--- a/xen/drivers/passthrough/iommu.c
+++ b/xen/drivers/passthrough/iommu.c
@@ -172,6 +172,9 @@ int iommu_domain_init(struct domain *d, unsigned int opts)
 struct domain_iommu *hd = dom_iommu(d);
 int ret = 0;
 
+if ( is_hardware_domain(d) )
+check_hwdom_reqs(d); /* may modify iommu_hwdom_strict */
+
 if ( !is_iommu_enabled(d) )
 return 0;
 
@@ -188,9 +191,6 @@ int iommu_domain_init(struct domain *d, unsigned int opts)
 if ( ret || is_system_domain(d) )
 return ret;
 
-if ( is_hardware_domain(d) )
-check_hwdom_reqs(d); /* may modify iommu_hwdom_strict */
-
 /*
  * Use shared page tables for HAP and IOMMU if the global option
  * is enabled (from which we can infer the h/w is capable) and
-- 
2.25.0


___
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel