const struct attribute_group **groups;
 };
 
-static int devm_attr_group_match(struct device *dev, void *res, void *data)
-{
-       return ((union device_attr_group_devres *)res)->group == data;
-}
-
 static void devm_attr_group_remove(struct device *dev, void *res)
 {
        union device_attr_group_devres *devres = res;
 }
 EXPORT_SYMBOL_GPL(devm_device_add_group);
 
-/**
- * devm_device_remove_group: remove a managed group from a device
- * @dev:       device to remove the group from
- * @grp:       group to remove
- *
- * This function removes a group of attributes from a device. The attributes
- * previously have to have been created for this group, otherwise it will fail.
- */
-void devm_device_remove_group(struct device *dev,
-                             const struct attribute_group *grp)
-{
-       WARN_ON(devres_release(dev, devm_attr_group_remove,
-                              devm_attr_group_match,
-                              /* cast away const */ (void *)grp));
-}
-EXPORT_SYMBOL_GPL(devm_device_remove_group);
-
 /**
  * devm_device_add_groups - create a bunch of managed attribute groups
  * @dev:       The device to create the group for
 
                                        const struct attribute_group **groups);
 int __must_check devm_device_add_group(struct device *dev,
                                       const struct attribute_group *grp);
-void devm_device_remove_group(struct device *dev,
-                             const struct attribute_group *grp);
 
 /*
  * Platform "fixup" functions - allow the platform to have their say