if (group)
                return group;
 
-       group = ERR_PTR(-EINVAL);
-
-       if (ops && ops->device_group)
-               group = ops->device_group(dev);
+       if (!ops)
+               return ERR_PTR(-EINVAL);
 
+       group = ops->device_group(dev);
        if (WARN_ON_ONCE(group == NULL))
                return ERR_PTR(-EINVAL);
 
        int ret;
 
        group = iommu_group_get(dev);
-       /* FIXME: Remove this when groups a mandatory for iommu drivers */
-       if (group == NULL)
-               return __iommu_attach_device(domain, dev);
-
        /*
-        * We have a group - lock it to make sure the device-count doesn't
+        * Lock the group to make sure the device-count doesn't
         * change while we are attaching
         */
        mutex_lock(&group->mutex);
        struct iommu_group *group;
 
        group = iommu_group_get(dev);
-       /* FIXME: Remove this when groups a mandatory for iommu drivers */
-       if (group == NULL)
-               return __iommu_detach_device(domain, dev);
 
        mutex_lock(&group->mutex);
        if (iommu_group_device_count(group) != 1) {
        struct iommu_group *group;
 
        group = iommu_group_get(dev);
-       /* FIXME: Remove this when groups a mandatory for iommu drivers */
-       if (group == NULL)
-               return NULL;
 
        domain = group->domain;