Skip to content

Commit

Permalink
power-supply: Avoid unnecessary 'goto' statements
Browse files Browse the repository at this point in the history
Using 'goto' statements for freeing resources on failures is a good choice as it
makes code very clean, and reduces the chances of human errors.

Though in most cases compiler may take care of this. But adding unnecessary
'goto' statements wouldn't make anything better. Code becomes less readable
actually.

Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Sebastian Reichel <sre@kernel.org>
  • Loading branch information
Viresh Kumar authored and Sebastian Reichel committed Sep 16, 2014
1 parent 73b4a08 commit 464069c
Show file tree
Hide file tree
Showing 2 changed files with 5 additions and 17 deletions.
3 changes: 1 addition & 2 deletions drivers/power/power_supply_core.c
Original file line number Diff line number Diff line change
Expand Up @@ -599,7 +599,7 @@ static int __power_supply_register(struct device *parent,

power_supply_changed(psy);

goto success;
return 0;

create_triggers_failed:
psy_unregister_cooler(psy);
Expand All @@ -612,7 +612,6 @@ static int __power_supply_register(struct device *parent,
check_supplies_failed:
dev_set_name_failed:
put_device(dev);
success:
return rc;
}

Expand Down
19 changes: 4 additions & 15 deletions drivers/power/power_supply_leds.c
Original file line number Diff line number Diff line change
Expand Up @@ -57,8 +57,6 @@ static void power_supply_update_bat_leds(struct power_supply *psy)

static int power_supply_create_bat_triggers(struct power_supply *psy)
{
int rc = 0;

psy->charging_full_trig_name = kasprintf(GFP_KERNEL,
"%s-charging-or-full", psy->name);
if (!psy->charging_full_trig_name)
Expand Down Expand Up @@ -87,7 +85,7 @@ static int power_supply_create_bat_triggers(struct power_supply *psy)
led_trigger_register_simple(psy->charging_blink_full_solid_trig_name,
&psy->charging_blink_full_solid_trig);

goto success;
return 0;

charging_blink_full_solid_failed:
kfree(psy->full_trig_name);
Expand All @@ -96,9 +94,7 @@ static int power_supply_create_bat_triggers(struct power_supply *psy)
charging_failed:
kfree(psy->charging_full_trig_name);
charging_full_failed:
rc = -ENOMEM;
success:
return rc;
return -ENOMEM;
}

static void power_supply_remove_bat_triggers(struct power_supply *psy)
Expand Down Expand Up @@ -132,20 +128,13 @@ static void power_supply_update_gen_leds(struct power_supply *psy)

static int power_supply_create_gen_triggers(struct power_supply *psy)
{
int rc = 0;

psy->online_trig_name = kasprintf(GFP_KERNEL, "%s-online", psy->name);
if (!psy->online_trig_name)
goto online_failed;
return -ENOMEM;

led_trigger_register_simple(psy->online_trig_name, &psy->online_trig);

goto success;

online_failed:
rc = -ENOMEM;
success:
return rc;
return 0;
}

static void power_supply_remove_gen_triggers(struct power_supply *psy)
Expand Down

0 comments on commit 464069c

Please sign in to comment.