enable_iommus();
- amd_iommu_init_notifier();
-
register_syscore_ops(&amd_iommu_syscore_ops);
return ret;
return true;
}
+static int amd_iommu_init_dma(void)
+{
+ int ret;
+
+ if (iommu_pass_through)
+ ret = amd_iommu_init_passthrough();
+ else
+ ret = amd_iommu_init_dma_ops();
+
+ if (ret)
+ return ret;
+
+ amd_iommu_init_api();
+
+ amd_iommu_init_notifier();
+
+ return 0;
+}
+
/*
* This is the core init function for AMD IOMMU hardware in the system.
* This function is called from the generic x86 DMA layer initialization
if (ret)
goto free;
- if (iommu_pass_through)
- ret = amd_iommu_init_passthrough();
- else
- ret = amd_iommu_init_dma_ops();
-
+ ret = amd_iommu_init_dma();
if (ret)
goto free;