aboutsummaryrefslogtreecommitdiff
path: root/drivers/power
diff options
context:
space:
mode:
authorGravatar Krzysztof Kozlowski <k.kozlowski@samsung.com> 2015-02-20 14:32:25 +0100
committerGravatar Sebastian Reichel <sre@kernel.org> 2015-02-25 22:18:18 +0100
commita7117f81e8391e035c49b3440792f7e6cea28173 (patch)
tree60fd67b0bfd0e16eb964044618c62da79f9466d1 /drivers/power
parentpower_supply: ipaq_micro_battery: Check return values in probe (diff)
downloadlinux-a7117f81e8391e035c49b3440792f7e6cea28173.tar.gz
linux-a7117f81e8391e035c49b3440792f7e6cea28173.tar.bz2
linux-a7117f81e8391e035c49b3440792f7e6cea28173.zip
power_supply: lp8788-charger: Fix leaked power supply on probe fail
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") Cc: <stable@vger.kernel.org> Signed-off-by: Sebastian Reichel <sre@kernel.org>
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 21fc233c7d61..176dab2e4c16 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;
}