Messages in this thread Patch in this message | | | From | "Rafael J. Wysocki" <> | Subject | [PATCH] Driver core: Fix device_add_attrs() error code path | Date | Thu, 12 Dec 2013 06:11:02 +0100 |
| |
From: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
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> --- drivers/base/core.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)
Index: linux-pm/drivers/base/core.c =================================================================== --- linux-pm.orig/drivers/base/core.c +++ linux-pm/drivers/base/core.c @@ -491,11 +491,13 @@ static int device_add_attrs(struct devic if (device_supports_offline(dev) && !dev->offline_disabled) { error = device_create_file(dev, &dev_attr_online); if (error) - goto err_remove_type_groups; + goto err_remove_dev_groups; } return 0; + err_remove_dev_groups: + device_remove_groups(dev, dev->groups); err_remove_type_groups: if (type) device_remove_groups(dev, type->groups);
| |