Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

[PATCH 1/2] pinctrl: Don't override the error code in probe error handling

4 views
Skip to first unread message

Axel Lin

unread,
May 19, 2013, 2:00:02 AM5/19/13
to
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...@ingics.com>
Cc: Linus Walleij <linus....@stericsson.com>
Cc: Maxime Ripard <maxime...@free-electrons.com>
Cc: Tony Prisk <li...@prisktech.co.nz>
---
drivers/pinctrl/pinctrl-coh901.c | 3 ++-
drivers/pinctrl/pinctrl-sunxi.c | 3 ++-
drivers/pinctrl/vt8500/pinctrl-wmt.c | 3 +--
3 files changed, 5 insertions(+), 4 deletions(-)

diff --git a/drivers/pinctrl/pinctrl-coh901.c b/drivers/pinctrl/pinctrl-coh901.c
index 20da215..ea98df9 100644
--- a/drivers/pinctrl/pinctrl-coh901.c
+++ b/drivers/pinctrl/pinctrl-coh901.c
@@ -830,7 +830,8 @@ static int __init u300_gpio_probe(struct platform_device *pdev)
return 0;

err_no_range:
- err = gpiochip_remove(&gpio->chip);
+ if (gpiochip_remove(&gpio->chip))
+ dev_err(&pdev->dev, "failed to remove gpio chip\n");
err_no_chip:
err_no_domain:
err_no_port:
diff --git a/drivers/pinctrl/pinctrl-sunxi.c b/drivers/pinctrl/pinctrl-sunxi.c
index c52fc2c..c058529 100644
--- a/drivers/pinctrl/pinctrl-sunxi.c
+++ b/drivers/pinctrl/pinctrl-sunxi.c
@@ -2000,7 +2000,8 @@ static int sunxi_pinctrl_probe(struct platform_device *pdev)
return 0;

gpiochip_error:
- ret = gpiochip_remove(pctl->chip);
+ if (gpiochip_remove(pctl->chip))
+ dev_err(&pdev->dev, "failed to remove gpio chip\n");
pinctrl_error:
pinctrl_unregister(pctl->pctl_dev);
return ret;
diff --git a/drivers/pinctrl/vt8500/pinctrl-wmt.c b/drivers/pinctrl/vt8500/pinctrl-wmt.c
index e877082..fb30edf3 100644
--- a/drivers/pinctrl/vt8500/pinctrl-wmt.c
+++ b/drivers/pinctrl/vt8500/pinctrl-wmt.c
@@ -609,8 +609,7 @@ int wmt_pinctrl_probe(struct platform_device *pdev,
return 0;

fail_range:
- err = gpiochip_remove(&data->gpio_chip);
- if (err)
+ if (gpiochip_remove(&data->gpio_chip))
dev_err(&pdev->dev, "failed to remove gpio chip\n");
fail_gpio:
pinctrl_unregister(data->pctl_dev);
--
1.8.1.2



--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majo...@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

Axel Lin

unread,
May 19, 2013, 2:10:01 AM5/19/13
to
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...@ingics.com>
Cc: Tomoya MORINAGA <tomoy...@gmail.com>
Cc: Denis Turischev <de...@compulab.co.il>
Cc: Lars Poeschel <poes...@lemonage.de>
---
drivers/gpio/gpio-ml-ioh.c | 3 +--
drivers/gpio/gpio-pch.c | 3 +--
drivers/gpio/gpio-sch.c | 6 ++----
drivers/gpio/gpio-viperboard.c | 3 ++-
4 files changed, 6 insertions(+), 9 deletions(-)

diff --git a/drivers/gpio/gpio-ml-ioh.c b/drivers/gpio/gpio-ml-ioh.c
index b733665..0966f26 100644
--- a/drivers/gpio/gpio-ml-ioh.c
+++ b/drivers/gpio/gpio-ml-ioh.c
@@ -496,8 +496,7 @@ err_irq_alloc_descs:
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);
diff --git a/drivers/gpio/gpio-pch.c b/drivers/gpio/gpio-pch.c
index cdf5996..0fec097 100644
--- a/drivers/gpio/gpio-pch.c
+++ b/drivers/gpio/gpio-pch.c
@@ -424,8 +424,7 @@ end:
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:
diff --git a/drivers/gpio/gpio-sch.c b/drivers/gpio/gpio-sch.c
index 1e4de16..5af6571 100644
--- a/drivers/gpio/gpio-sch.c
+++ b/drivers/gpio/gpio-sch.c
@@ -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));
diff --git a/drivers/gpio/gpio-viperboard.c b/drivers/gpio/gpio-viperboard.c
index 095ab14..5ac2919 100644
--- a/drivers/gpio/gpio-viperboard.c
+++ b/drivers/gpio/gpio-viperboard.c
@@ -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;

Tony Prisk

unread,
May 19, 2013, 4:00:02 AM5/19/13
to
Good catch.

for pinctrl-wmt
Acked-by: Tony Prisk <li...@prisktech.co.nz>

Regards
Tony P

Linus Walleij

unread,
May 20, 2013, 2:30:01 PM5/20/13
to
On Sun, May 19, 2013 at 8:00 AM, Axel Lin <axel...@ingics.com> wrote:

> 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...@ingics.com>
> Cc: Tomoya MORINAGA <tomoy...@gmail.com>
> Cc: Denis Turischev <de...@compulab.co.il>
> Cc: Lars Poeschel <poes...@lemonage.de>

Good spot Axel!

Patch applied for rc-fixes.

Yours,
Linus Walleij

Maxime Ripard

unread,
May 21, 2013, 3:40:01 AM5/21/13
to
Hi Axel,

On Sun, May 19, 2013 at 01:58:37PM +0800, Axel Lin wrote:
> 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...@ingics.com>
> Cc: Linus Walleij <linus....@stericsson.com>
> Cc: Maxime Ripard <maxime...@free-electrons.com>
> Cc: Tony Prisk <li...@prisktech.co.nz>

For the sunxi part
Acked-by: Maxime Ripard <maxime...@free-electrons.com>

Thanks!
Maxime

--
Maxime Ripard, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com

Linus Walleij

unread,
May 21, 2013, 7:40:02 AM5/21/13
to
On Sun, May 19, 2013 at 7:58 AM, Axel Lin <axel...@ingics.com> wrote:

> 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...@ingics.com>
> Cc: Linus Walleij <linus....@stericsson.com>
> Cc: Maxime Ripard <maxime...@free-electrons.com>
> Cc: Tony Prisk <li...@prisktech.co.nz>

Patch applied for fixes, with ACKs.

Yours,
Linus Walleij
0 new messages