forked from luck/tmp_suning_uos_patched
Driver core: Fix device_add_attrs() error code path
If the addition of dev_attr_online fails, device_add_attrs() should remove device attribute groups as well as type and class attribute groups before returning an error code. Make that happen. Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com> Acked-by: Toshi Kani <toshi.kani@hp.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
80b9bbefc3
commit
ecfbf6fd9c
|
@ -491,11 +491,13 @@ static int device_add_attrs(struct device *dev)
|
||||||
if (device_supports_offline(dev) && !dev->offline_disabled) {
|
if (device_supports_offline(dev) && !dev->offline_disabled) {
|
||||||
error = device_create_file(dev, &dev_attr_online);
|
error = device_create_file(dev, &dev_attr_online);
|
||||||
if (error)
|
if (error)
|
||||||
goto err_remove_type_groups;
|
goto err_remove_dev_groups;
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
|
err_remove_dev_groups:
|
||||||
|
device_remove_groups(dev, dev->groups);
|
||||||
err_remove_type_groups:
|
err_remove_type_groups:
|
||||||
if (type)
|
if (type)
|
||||||
device_remove_groups(dev, type->groups);
|
device_remove_groups(dev, type->groups);
|
||||||
|
|
Loading…
Reference in New Issue
Block a user