/* No shared group found, allocate new */
group = iommu_group_alloc();
- if (group) {
- /*
- * Try to allocate a default domain - needs support from the
- * IOMMU driver.
- */
- group->default_domain = __iommu_domain_alloc(pdev->dev.bus,
- IOMMU_DOMAIN_DMA);
- group->domain = group->default_domain;
- }
+ if (IS_ERR(group))
+ return NULL;
+
+ /*
+ * Try to allocate a default domain - needs support from the
+ * IOMMU driver.
+ */
+ group->default_domain = __iommu_domain_alloc(pdev->dev.bus,
+ IOMMU_DOMAIN_DMA);
+ group->domain = group->default_domain;
return group;
}
/* Device must already be in a group before calling this function */
group = iommu_group_get_for_dev(dev);
- if (!group)
- return -EINVAL;
+ if (IS_ERR(group))
+ return PTR_ERR(group);
mutex_lock(&group->mutex);