mirror of
https://github.com/xen-project/xen.git
synced 2026-10-28 02:01:24 +01:00
iommu: fix check for autotranslated hardware domain
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:f89f555827('remove late (on-demand) construction of IOMMU page tables') Signed-off-by: Roger Pau Monné <roger.pau@citrix.com> Reviewed-by: Jan Beulich <jbeulich@suse.com> master commit:faf0d606a6master date: 2020-03-05 10:43:46 +0100
This commit is contained in:
1 parent
a99de9de81
commit
ac75ea8b67
1 file changed
+3
-3
@@ -171,6 +171,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;
|
||||
|
||||
@@ -187,9 +190,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
|
||||
|
||||