lp8727_charger: unregister power supply at error path of lp8727_register_psy
PATCH 2/2 lp8727_charger: unregister power supply at error path of lp8727_register_psy
if usb power supply registration fails,
we wont unregister the ac power supply
if battery power supply registration fails,
we wont unregister the usb, and ac supply,
take care of those things and also no need of goto -err_mem: at the fail case of kzalloc simply can have return -ENOMEM
--- drivers/power/lp8727_charger.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-)
drivers/power/lp8727_charger.c +7 -5
@@ -362,7 +362,7 @@ static int lp8727_register_psy(struct lp8727_chg *pchg) psy =kzalloc (sizeof (*psy),GFP_KERNEL );if (!psy) - goto err_mem; +return -ENOMEM ; pchg->psy = psy;
@@ -386,7 +386,7 @@ static int lp8727_register_psy(struct lp8727_chg *pchg) psy->usb.num_supplicants =ARRAY_SIZE (battery_supplied_to);if (power_supply_register (pchg->dev, &psy->usb)) - goto err_psy; + goto err_psy_ac; psy->batt.name ="main_batt" ; psy->batt.type =POWER_SUPPLY_TYPE_BATTERY ;
@@ -396,12 +396,14 @@ static int lp8727_register_psy(struct lp8727_chg *pchg) psy->batt.external_power_changed = lp8727_charger_changed;if (power_supply_register (pchg->dev, &psy->batt)) - goto err_psy; + goto err_psy_usb;return 0 ; -err_mem: -return -ENOMEM ; +err_psy_usb: +power_supply_unregister (&psy->usb); +err_psy_ac: +power_supply_unregister (&psy->ac); err_psy:kfree (psy);return -EPERM ;
Signature · 1 line
1.7.9.5
drivers/power/lp8727_charger.c static int lp8727_register_psy(struct lp8727_chg *pchg) · line 389
Quoted 3 lines
drivers/power/lp8727_charger.c +1
-1if (power_supply_register (pchg->dev, &psy->usb)) - goto err_psy; + goto err_psy_ac;
"err_psy_ac" label name is confusing. Why can't you use err_psy_usb
drivers/power/lp8727_charger.c static int lp8727_register_psy(struct lp8727_chg *pchg) · line 399
Quoted 3 lines
drivers/power/lp8727_charger.c +1
-1if (power_supply_register (pchg->dev, &psy->batt)) - goto err_psy; + goto err_psy_usb;
Same here, why don't you use err_psy_batt
Thanks,
Ram
Quoted 11 lines · Ramakrishna
Review
Quoted 3 lines
(quoted diff) +1
-1if (power_supply_register(pchg->dev, &psy->usb)) - goto err_psy; + goto err_psy_ac;"
err_psy_ac" label name is confusing. Why can't you useerr_psy_usbReview
Quoted 3 lines
(quoted diff) +1
-1if (power_supply_register(pchg->dev, &psy->batt)) - goto err_psy; + goto err_psy_usb;Same here, why don't you use
err_psy_batt
Thanks, folks! It was easy to change so I applied the following:
commit 6297b5e54b5511d4e72e8d5fc3b139650adc74d8
Author: Devendra Naga <[email protected]> Date: Sun Jul 29 23:31:55 2012 +0545
lp8727_charger: Unregister power supply at error path of lp8727_register_psy
if usb power supply registration fails,
we wont unregister the ac power supply
if battery power supply registration fails,
we wont unregister the usb, and ac supply,
take care of those things and also no need of goto -err_mem: at the fail case of kzalloc simply can have return -ENOMEM
drivers/power/lp8727_charger.c +9 -7
@@ -362,7 +362,7 @@ static int lp8727_register_psy(struct lp8727_chg *pchg) psy =kzalloc (sizeof (*psy),GFP_KERNEL );if (!psy) - goto err_mem; +return -ENOMEM ; pchg->psy = psy;
@@ -375,7 +375,7 @@ static int lp8727_register_psy(struct lp8727_chg *pchg) psy->ac.num_supplicants =ARRAY_SIZE (battery_supplied_to);if (power_supply_register (pchg->dev, &psy->ac)) - goto err_psy; + goto err_psy_ac; psy->usb.name ="usb" ; psy->usb.type =POWER_SUPPLY_TYPE_USB ;
@@ -386,7 +386,7 @@ static int lp8727_register_psy(struct lp8727_chg *pchg) psy->usb.num_supplicants =ARRAY_SIZE (battery_supplied_to);if (power_supply_register (pchg->dev, &psy->usb)) - goto err_psy; + goto err_psy_usb; psy->batt.name ="main_batt" ; psy->batt.type =POWER_SUPPLY_TYPE_BATTERY ;
@@ -396,13 +396,15 @@ static int lp8727_register_psy(struct lp8727_chg *pchg) psy->batt.external_power_changed = lp8727_charger_changed;if (power_supply_register (pchg->dev, &psy->batt)) - goto err_psy; + goto err_psy_batt;return 0 ; -err_mem: -return -ENOMEM ; -err_psy: +err_psy_batt: +power_supply_unregister (&psy->usb); +err_psy_usb: +power_supply_unregister (&psy->ac); +err_psy_ac:kfree (psy);return -EPERM ; }
Hi Anton,
Thanks for merging this in. Actually a V2 has been sent a long ago after receving comments for Ramakrishna, that actually does the same changes as you have currently done.
Anyways Thanks again.
Quoted 83 lines · Anton Vorontsov
Quoted 11 lines · Ramakrishna
drivers/power/lp8727_charger.c static int lp8727_register_psy(struct lp8727_chg *pchg) · line 378
Quoted 3 lines
if (power_supply_register(pchg->dev, &psy->usb))drivers/power/lp8727_charger.c +1
-1- goto err_psy; + goto err_psy_ac;"
err_psy_ac" label name is confusing. Why can't you useerr_psy_usbdrivers/power/lp8727_charger.c static int lp8727_register_psy(struct lp8727_chg *pchg) · line 389
Quoted 3 lines
if (power_supply_register(pchg->dev, &psy->batt))drivers/power/lp8727_charger.c +1
-1- goto err_psy; + goto err_psy_usb;Same here, why don't you use
err_psy_battThanks, folks! It was easy to change so I applied the following:
commit
6297b5e54b5511d4e72e8d5fc3b139650adc74d8Author: Devendra Naga <[email protected]> Date: Sun Jul 29 23:31:55 2012 +0545
lp8727_charger: Unregister power supply at error path oflp8727_register_psyif usb power supply registration fails,
we wont unregister the ac power supply
if battery power supply registration fails,
we wont unregister the usb, and ac supply,take care of those things and also no need of goto -err_mem: at the fail case of kzalloc simply can have return
-ENOMEMSigned-off-by Devendra Naga <[email protected]>Signed-off-by Anton Vorontsov <[email protected]>drivers/power/lp8727_charger.c +9
-7@@ -362,7 +362,7 @@ static int lp8727_register_psy(struct lp8727_chg *pchg) psy =kzalloc (sizeof (*psy),GFP_KERNEL );if (!psy) - goto err_mem; +return -ENOMEM ; pchg->psy = psy;@@ -375,7 +375,7 @@ static int lp8727_register_psy(struct lp8727_chg *pchg) psy->ac.num_supplicants =ARRAY_SIZE (battery_supplied_to);if (power_supply_register (pchg->dev, &psy->ac)) - goto err_psy; + goto err_psy_ac; psy->usb.name ="usb" ; psy->usb.type =POWER_SUPPLY_TYPE_USB ;@@ -386,7 +386,7 @@ static int lp8727_register_psy(struct lp8727_chg *pchg) psy->usb.num_supplicants =ARRAY_SIZE (battery_supplied_to);if (power_supply_register (pchg->dev, &psy->usb)) - goto err_psy; + goto err_psy_usb; psy->batt.name ="main_batt" ; psy->batt.type =POWER_SUPPLY_TYPE_BATTERY ;@@ -396,13 +396,15 @@ static int lp8727_register_psy(struct lp8727_chg *pchg) psy->batt.external_power_changed = lp8727_charger_changed;if (power_supply_register (pchg->dev, &psy->batt)) - goto err_psy; + goto err_psy_batt;return 0 ; -err_mem: -return -ENOMEM ; -err_psy: +err_psy_batt: +power_supply_unregister (&psy->usb); +err_psy_usb: +power_supply_unregister (&psy->ac); +err_psy_ac:kfree (psy);return -EPERM ; }