summaryrefslogtreecommitdiff
path: root/drivers/power
diff options
context:
space:
mode:
authorKrzysztof Kozlowski <k.kozlowski@samsung.com>2015-02-20 16:32:25 +0300
committerJiri Slaby <jslaby@suse.cz>2015-05-04 12:49:52 +0300
commit3ac895c7731a6c2fbe097609491451cb97b360d9 (patch)
tree1c3581c47fa31c73d43500a7dbd75a3ffd08efd9 /drivers/power
parent1c36ba3f9ef3d3317693dfcead7c3d989b3801bb (diff)
downloadlinux-3ac895c7731a6c2fbe097609491451cb97b360d9.tar.xz
power_supply: lp8788-charger: Fix leaked power supply on probe fail
commit a7117f81e8391e035c49b3440792f7e6cea28173 upstream. Driver forgot to unregister charger power supply if registering of battery supply failed in probe(). In such case the memory associated with power supply leaked. Signed-off-by: Krzysztof Kozlowski <k.kozlowski@samsung.com> Fixes: 98a276649358 ("power_supply: Add new lp8788 charger driver") Signed-off-by: Sebastian Reichel <sre@kernel.org> Signed-off-by: Jiri Slaby <jslaby@suse.cz>
Diffstat (limited to 'drivers/power')
-rw-r--r--drivers/power/lp8788-charger.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/power/lp8788-charger.c b/drivers/power/lp8788-charger.c
index ed49b50b220b..72da2a6c22db 100644
--- a/drivers/power/lp8788-charger.c
+++ b/drivers/power/lp8788-charger.c
@@ -417,8 +417,10 @@ static int lp8788_psy_register(struct platform_device *pdev,
pchg->battery.num_properties = ARRAY_SIZE(lp8788_battery_prop);
pchg->battery.get_property = lp8788_battery_get_property;
- if (power_supply_register(&pdev->dev, &pchg->battery))
+ if (power_supply_register(&pdev->dev, &pchg->battery)) {
+ power_supply_unregister(&pchg->charger);
return -EPERM;
+ }
return 0;
}