Commit 839dc9f1 authored by Andres Salomon's avatar Andres Salomon Committed by Anton Vorontsov

power: fix incorrect unregistration in power_supply_create_attrs error path

In power_supply_create_attrs(), we create static attributes as referenced
by power_supply_static_attrs[i].  After that, if we fail, we unregister
via power_supply_static_attrs[psy->properties[i]].  This is incorrect, as
psy->properties has absolutely no bearing on static attribs.  This patch
fixes it to unregister the correct attrib.

Another line which was unnecessarily line wrapped is also unwrapped.
Signed-off-by: default avatarAndres Salomon <dilinger@debian.org>
Signed-off-by: default avatarDavid Woodhouse <dwmw2@infradead.org>
parent 8efe4440
...@@ -155,8 +155,7 @@ int power_supply_create_attrs(struct power_supply *psy) ...@@ -155,8 +155,7 @@ int power_supply_create_attrs(struct power_supply *psy)
&power_supply_attrs[psy->properties[j]]); &power_supply_attrs[psy->properties[j]]);
statics_failed: statics_failed:
while (i--) while (i--)
device_remove_file(psy->dev, device_remove_file(psy->dev, &power_supply_static_attrs[i]);
&power_supply_static_attrs[psy->properties[i]]);
succeed: succeed:
return rc; return rc;
} }
...@@ -166,8 +165,7 @@ void power_supply_remove_attrs(struct power_supply *psy) ...@@ -166,8 +165,7 @@ void power_supply_remove_attrs(struct power_supply *psy)
int i; int i;
for (i = 0; i < ARRAY_SIZE(power_supply_static_attrs); i++) for (i = 0; i < ARRAY_SIZE(power_supply_static_attrs); i++)
device_remove_file(psy->dev, device_remove_file(psy->dev, &power_supply_static_attrs[i]);
&power_supply_static_attrs[i]);
for (i = 0; i < psy->num_properties; i++) for (i = 0; i < psy->num_properties; i++)
device_remove_file(psy->dev, device_remove_file(psy->dev,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment