Commit d9eafd58 authored by Rui Miguel Silva's avatar Rui Miguel Silva Committed by Greg Kroah-Hartman

greybus: power_supply: fix error path at supplies setup

If something goes wrong at setup time for the supplies, we need to
release all the resources allocated already.

Call the supplies release function which will handle the correct
teardown of the supplies.
Signed-off-by: default avatarRui Miguel Silva <rui.silva@linaro.org>
Reported-by: default avatarJohan Hovold <johan@hovoldconsulting.com>
Reviewed-by: default avatarJohan Hovold <johan@hovoldconsulting.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@google.com>
parent 23f25ba6
...@@ -731,6 +731,7 @@ static int gb_power_supply_event_recv(u8 type, struct gb_operation *op) ...@@ -731,6 +731,7 @@ static int gb_power_supply_event_recv(u8 type, struct gb_operation *op)
static int gb_power_supply_connection_init(struct gb_connection *connection) static int gb_power_supply_connection_init(struct gb_connection *connection)
{ {
struct gb_power_supplies *supplies; struct gb_power_supplies *supplies;
int ret;
supplies = kzalloc(sizeof(*supplies), GFP_KERNEL); supplies = kzalloc(sizeof(*supplies), GFP_KERNEL);
if (!supplies) if (!supplies)
...@@ -741,7 +742,11 @@ static int gb_power_supply_connection_init(struct gb_connection *connection) ...@@ -741,7 +742,11 @@ static int gb_power_supply_connection_init(struct gb_connection *connection)
mutex_init(&supplies->supplies_lock); mutex_init(&supplies->supplies_lock);
return gb_power_supplies_setup(supplies); ret = gb_power_supplies_setup(supplies);
if (ret < 0)
_gb_power_supplies_release(supplies);
return ret;
} }
static void gb_power_supply_connection_exit(struct gb_connection *connection) static void gb_power_supply_connection_exit(struct gb_connection *connection)
......
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