Merge remote-tracking branches 'asoc/fix/imx-spdif', 'asoc/fix/mtk', 'asoc/fix/mxs...
[cascardo/linux.git] / drivers / iommu / dmar.c
index 80e3c17..62a400c 100644 (file)
@@ -1063,13 +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)) {
+                       err = PTR_ERR(iommu->iommu_dev);
+                       goto err_unmap;
+               }
+       }
+
+       drhd->iommu = iommu;
+
        return 0;
 
 err_unmap: