Skip to content

Commit

Permalink
gpio: Don't override the error code in probe error handling
Browse files Browse the repository at this point in the history
Otherwise, we return 0 in probe error paths when gpiochip_remove() returns 0.
Also show error message if gpiochip_remove() fails.

Signed-off-by: Axel Lin <axel.lin@ingics.com>
Cc: Tomoya MORINAGA <tomoya.rohm@gmail.com>
Cc: Denis Turischev <denis@compulab.co.il>
Cc: Lars Poeschel <poeschel@lemonage.de>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
  • Loading branch information
Axel Lin authored and Linus Walleij committed May 20, 2013
1 parent 90dae4e commit cfb1089
Show file tree
Hide file tree
Showing 4 changed files with 6 additions and 9 deletions.
3 changes: 1 addition & 2 deletions drivers/gpio/gpio-ml-ioh.c
Original file line number Diff line number Diff line change
Expand Up @@ -496,8 +496,7 @@ static int ioh_gpio_probe(struct pci_dev *pdev,
err_gpiochip_add:
while (--i >= 0) {
chip--;
ret = gpiochip_remove(&chip->gpio);
if (ret)
if (gpiochip_remove(&chip->gpio))
dev_err(&pdev->dev, "Failed gpiochip_remove(%d)\n", i);
}
kfree(chip_save);
Expand Down
3 changes: 1 addition & 2 deletions drivers/gpio/gpio-pch.c
Original file line number Diff line number Diff line change
Expand Up @@ -424,8 +424,7 @@ static int pch_gpio_probe(struct pci_dev *pdev,
err_request_irq:
irq_free_descs(irq_base, gpio_pins[chip->ioh]);

ret = gpiochip_remove(&chip->gpio);
if (ret)
if (gpiochip_remove(&chip->gpio))
dev_err(&pdev->dev, "%s gpiochip_remove failed\n", __func__);

err_gpiochip_add:
Expand Down
6 changes: 2 additions & 4 deletions drivers/gpio/gpio-sch.c
Original file line number Diff line number Diff line change
Expand Up @@ -272,10 +272,8 @@ static int sch_gpio_probe(struct platform_device *pdev)
return 0;

err_sch_gpio_resume:
err = gpiochip_remove(&sch_gpio_core);
if (err)
dev_err(&pdev->dev, "%s failed, %d\n",
"gpiochip_remove()", err);
if (gpiochip_remove(&sch_gpio_core))
dev_err(&pdev->dev, "%s gpiochip_remove failed\n", __func__);

err_sch_gpio_core:
release_region(res->start, resource_size(res));
Expand Down
3 changes: 2 additions & 1 deletion drivers/gpio/gpio-viperboard.c
Original file line number Diff line number Diff line change
Expand Up @@ -446,7 +446,8 @@ static int vprbrd_gpio_probe(struct platform_device *pdev)
return ret;

err_gpiob:
ret = gpiochip_remove(&vb_gpio->gpioa);
if (gpiochip_remove(&vb_gpio->gpioa))
dev_err(&pdev->dev, "%s gpiochip_remove failed\n", __func__);

err_gpioa:
return ret;
Expand Down

0 comments on commit cfb1089

Please sign in to comment.