|
@@ -2803,6 +2803,8 @@ static int __init init_dmars(void)
|
|
for_each_active_iommu(iommu, drhd) {
|
|
for_each_active_iommu(iommu, drhd) {
|
|
g_iommus[iommu->seq_id] = iommu;
|
|
g_iommus[iommu->seq_id] = iommu;
|
|
|
|
|
|
|
|
+ intel_iommu_init_qi(iommu);
|
|
|
|
+
|
|
ret = iommu_init_domains(iommu);
|
|
ret = iommu_init_domains(iommu);
|
|
if (ret)
|
|
if (ret)
|
|
goto free_iommu;
|
|
goto free_iommu;
|
|
@@ -2819,9 +2821,6 @@ static int __init init_dmars(void)
|
|
hw_pass_through = 0;
|
|
hw_pass_through = 0;
|
|
}
|
|
}
|
|
|
|
|
|
- for_each_active_iommu(iommu, drhd)
|
|
|
|
- intel_iommu_init_qi(iommu);
|
|
|
|
-
|
|
|
|
if (iommu_pass_through)
|
|
if (iommu_pass_through)
|
|
iommu_identity_mapping |= IDENTMAP_ALL;
|
|
iommu_identity_mapping |= IDENTMAP_ALL;
|
|
|
|
|