power_supply: collie_battery: simplify collie_bat_probe error handling
PATCH 1/1 power_supply: collie_battery: simplify collie_bat_probe error handling
I think this change is better in readability.
Signed-off-by Axel Lin <[email protected]>
--- drivers/power/collie_battery.c | 12 +++++------- 1 files changed, 5 insertions(+), 7 deletions(-)
drivers/power/collie_battery.c +5 -7
@@ -322,10 +322,8 @@ static int __devinit collie_bat_probe(struct ucb1x00_dev *dev)for (i =0 ; i <ARRAY_SIZE (gpios); i++) { ret =gpio_request (gpios[i].gpio, gpios[i].name); -if (ret) { - i--; +if (ret) goto err_gpio; - }if (gpios[i].output) ret = gpio_direction_output(gpios[i].gpio,
@@ -333,8 +331,10 @@ static int __devinit collie_bat_probe(struct ucb1x00_dev *dev)else ret =gpio_direction_input (gpios[i].gpio); -if (ret) +if (ret) { +gpio_free (gpios[i].gpio); goto err_gpio; + } }mutex_init (&collie_bat_main.work_lock);
@@ -363,10 +363,8 @@ err_psy_reg_main:/* see comment in collie_bat_remove */ cancel_work_sync (&bat_work); - - i--; err_gpio: -for (; i >=0 ; i--) +while (--i >=0 )gpio_free (gpios[i].gpio);return ret;
Signature · 1 line
1.7.4.1
Mailer problem, sorry, sending once again...
Hi Axel,
Quoted 4 lines · Axel Lin
I think this change is better in readability.
Signed-off-by Axel Lin <[email protected]>---
May be just convert it to use struct gpio and gpio_<request|free>_array() calls? Because right now it uses the same concept, but really awkward...
Quoted 43 lines
drivers/power/collie_battery.c | 12 +++++------- 1 files changed, 5 insertions(+), 7 deletions(-)drivers/power/collie_battery.c +5
-7@@ -322,10 +322,8 @@ static int __devinit collie_bat_probe(struct ucb1x00_dev *dev)for (i =0 ; i <ARRAY_SIZE (gpios); i++) { ret =gpio_request (gpios[i].gpio, gpios[i].name); -if (ret) { - i--; +if (ret) goto err_gpio; - }if (gpios[i].output) ret = gpio_direction_output(gpios[i].gpio,@@ -333,8 +331,10 @@ static int __devinit collie_bat_probe(struct ucb1x00_dev *dev)else ret =gpio_direction_input (gpios[i].gpio); -if (ret) +if (ret) { +gpio_free (gpios[i].gpio); goto err_gpio; + } }mutex_init (&collie_bat_main.work_lock);@@ -363,10 +363,8 @@ err_psy_reg_main:/* see comment in collie_bat_remove */ cancel_work_sync (&bat_work); - - i--; err_gpio: -for (; i >=0 ; i--) +while (--i >=0 )gpio_free (gpios[i].gpio);return ret;
Signature · 2 lines
Regards, Igor.