diff options
| author | Axel Lin <axel.lin@ingics.com> | 2013-05-19 14:00:47 +0800 | 
|---|---|---|
| committer | Linus Walleij <linus.walleij@linaro.org> | 2013-05-20 20:27:30 +0200 | 
| commit | cfb10898efe1bc1f3eb8d8f37f164d9e2ac8b43a (patch) | |
| tree | 4633a990efc5bcd9090bb594acc4a9923a0194cc /drivers/gpio | |
| parent | 90dae4ebf03063a70d992aad00d5f5a607c31db8 (diff) | |
| download | olio-linux-3.10-cfb10898efe1bc1f3eb8d8f37f164d9e2ac8b43a.tar.xz olio-linux-3.10-cfb10898efe1bc1f3eb8d8f37f164d9e2ac8b43a.zip  | |
gpio: Don't override the error code in probe error handling
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>
Diffstat (limited to 'drivers/gpio')
| -rw-r--r-- | drivers/gpio/gpio-ml-ioh.c | 3 | ||||
| -rw-r--r-- | drivers/gpio/gpio-pch.c | 3 | ||||
| -rw-r--r-- | drivers/gpio/gpio-sch.c | 6 | ||||
| -rw-r--r-- | 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 b73366523fa..0966f2637ad 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 cdf599687cf..0fec097e838 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 1e4de16ceb4..5af65719b95 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 095ab14cea4..5ac2919197f 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;  |