Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit cfb10898 authored by Axel Lin's avatar Axel Lin Committed by Linus Walleij
Browse files

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: default avatarAxel 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: default avatarLinus Walleij <linus.walleij@linaro.org>
parent 90dae4eb
Loading
Loading
Loading
Loading
+1 −2
Original line number Diff line number Diff line
@@ -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);
+1 −2
Original line number Diff line number Diff line
@@ -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:
+2 −4
Original line number Diff line number Diff line
@@ -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));
+2 −1
Original line number Diff line number Diff line
@@ -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;