OSDN Git Service

Merge tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma
[uclinux-h8/linux.git] / drivers / iommu / iommu.c
index b53446b..0f4dc25 100644 (file)
@@ -264,16 +264,18 @@ int iommu_probe_device(struct device *dev)
         */
        iommu_alloc_default_domain(group, dev);
 
-       if (group->default_domain)
+       if (group->default_domain) {
                ret = __iommu_attach_device(group->default_domain, dev);
+               if (ret) {
+                       iommu_group_put(group);
+                       goto err_release;
+               }
+       }
 
        iommu_create_device_direct_mappings(group, dev);
 
        iommu_group_put(group);
 
-       if (ret)
-               goto err_release;
-
        if (ops->probe_finalize)
                ops->probe_finalize(dev);