driver core: add default groups to struct class

We should be using groups, not attribute lists, for classes to allow
subdirectories, and soon, binary files.  Groups are just more flexible
overall, so add them.

The dev_attrs list will go away after all in-kernel users are converted
to use dev_groups.

Reviewed-by: Guenter Roeck <[email protected]>
Tested-by: Guenter Roeck <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
This commit is contained in:
Greg Kroah-Hartman 2013-07-14 16:05:58 -07:00
commit d05a6f96c7
2 changed files with 11 additions and 2 deletions

View file

@ -528,9 +528,12 @@ static int device_add_attrs(struct device *dev)
int error;
if (class) {
error = device_add_attributes(dev, class->dev_attrs);
error = device_add_groups(dev, class->dev_groups);
if (error)
return error;
error = device_add_attributes(dev, class->dev_attrs);
if (error)
goto err_remove_class_groups;
error = device_add_bin_attributes(dev, class->dev_bin_attrs);
if (error)
goto err_remove_class_attrs;
@ -563,6 +566,9 @@ static int device_add_attrs(struct device *dev)
err_remove_class_attrs:
if (class)
device_remove_attributes(dev, class->dev_attrs);
err_remove_class_groups:
if (class)
device_remove_groups(dev, class->dev_groups);
return error;
}
@ -581,6 +587,7 @@ static void device_remove_attrs(struct device *dev)
if (class) {
device_remove_attributes(dev, class->dev_attrs);
device_remove_bin_attributes(dev, class->dev_bin_attrs);
device_remove_groups(dev, class->dev_groups);
}
}