aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/staging/greybus/power_supply.c
diff options
context:
space:
mode:
authorJohan Hovold <johan@hovoldconsulting.com>2016-01-07 12:28:29 +0100
committerGreg Kroah-Hartman <gregkh@google.com>2016-01-11 19:16:12 -0800
commite0d91ff127cf68e6369cfccd51af18b07bf462e3 (patch)
tree83ba1490f4c8be24322c315734e069afad2c2454 /drivers/staging/greybus/power_supply.c
parentgreybus: arche-platform: Add wake/detect support along with handshaking with AP (diff)
downloadlinux-dev-e0d91ff127cf68e6369cfccd51af18b07bf462e3.tar.xz
linux-dev-e0d91ff127cf68e6369cfccd51af18b07bf462e3.zip
greybus: power_supply: fix lock imbalance in init error path
Make sure to release the supplies_lock before returning on errors in gb_power_supplies_setup(). Signed-off-by: Johan Hovold <johan@hovoldconsulting.com> Reviewed-by: Rui Miguel Silva <rui.silva@linaro.org> Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Diffstat (limited to 'drivers/staging/greybus/power_supply.c')
-rw-r--r--drivers/staging/greybus/power_supply.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/staging/greybus/power_supply.c b/drivers/staging/greybus/power_supply.c
index 4a7381650bb7..1f3884bccf97 100644
--- a/drivers/staging/greybus/power_supply.c
+++ b/drivers/staging/greybus/power_supply.c
@@ -644,8 +644,10 @@ static int gb_power_supplies_setup(struct gb_power_supplies *supplies)
sizeof(struct gb_power_supply),
GFP_KERNEL);
- if (!supplies->supply)
- return -ENOMEM;
+ if (!supplies->supply) {
+ ret = -ENOMEM;
+ goto out;
+ }
for (i = 0; i < supplies->supplies_count; i++) {
ret = gb_power_supply_config(supplies, i);