|
@@ -1063,19 +1063,19 @@ static int alloc_iommu(struct dmar_drhd_unit *drhd)
|
|
|
|
|
|
raw_spin_lock_init(&iommu->register_lock);
|
|
|
|
|
|
- drhd->iommu = iommu;
|
|
|
-
|
|
|
- if (intel_iommu_enabled)
|
|
|
+ if (intel_iommu_enabled) {
|
|
|
iommu->iommu_dev = iommu_device_create(NULL, iommu,
|
|
|
intel_iommu_groups,
|
|
|
"%s", iommu->name);
|
|
|
|
|
|
- if (IS_ERR(iommu->iommu_dev)) {
|
|
|
- drhd->iommu = NULL;
|
|
|
- err = PTR_ERR(iommu->iommu_dev);
|
|
|
- goto err_unmap;
|
|
|
+ if (IS_ERR(iommu->iommu_dev)) {
|
|
|
+ err = PTR_ERR(iommu->iommu_dev);
|
|
|
+ goto err_unmap;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
+ drhd->iommu = iommu;
|
|
|
+
|
|
|
return 0;
|
|
|
|
|
|
err_unmap:
|