2023-05-20 07:23:45

by Christophe JAILLET

[permalink] [raw]
Subject: [PATCH 1/2] mfd: wcd934x: Fix an error handling path in wcd934x_slim_probe()

If devm_gpiod_get_optional() fails, some resources need to be released, as
already done in the .remove() function.

While at it, remove the unneeded error code from a dev_err_probe() call.
It is already added in a human readable way by dev_err_probe() itself.

Fixes: 6a0ee2a61a31 ("mfd: wcd934x: Replace legacy gpio interface for gpiod")
Signed-off-by: Christophe JAILLET <[email protected]>
---
drivers/mfd/wcd934x.c | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/drivers/mfd/wcd934x.c b/drivers/mfd/wcd934x.c
index 07e884087f2c..281470d6b0b9 100644
--- a/drivers/mfd/wcd934x.c
+++ b/drivers/mfd/wcd934x.c
@@ -258,8 +258,9 @@ static int wcd934x_slim_probe(struct slim_device *sdev)
usleep_range(600, 650);
reset_gpio = devm_gpiod_get_optional(dev, "reset", GPIOD_OUT_LOW);
if (IS_ERR(reset_gpio)) {
- return dev_err_probe(dev, PTR_ERR(reset_gpio),
- "Failed to get reset gpio: err = %ld\n", PTR_ERR(reset_gpio));
+ ret = dev_err_probe(dev, PTR_ERR(reset_gpio),
+ "Failed to get reset gpio\n");
+ goto err_disable_regulators;
}
msleep(20);
gpiod_set_value(reset_gpio, 1);
@@ -269,6 +270,10 @@ static int wcd934x_slim_probe(struct slim_device *sdev)
dev_set_drvdata(dev, ddata);

return 0;
+
+err_disable_regulators:
+ regulator_bulk_disable(WCD934X_MAX_SUPPLY, ddata->supplies);
+ return ret;
}

static void wcd934x_slim_remove(struct slim_device *sdev)
--
2.34.1



2023-05-25 11:25:35

by Lee Jones

[permalink] [raw]
Subject: Re: [PATCH 1/2] mfd: wcd934x: Fix an error handling path in wcd934x_slim_probe()

On Sat, 20 May 2023, Christophe JAILLET wrote:

> If devm_gpiod_get_optional() fails, some resources need to be released, as
> already done in the .remove() function.
>
> While at it, remove the unneeded error code from a dev_err_probe() call.
> It is already added in a human readable way by dev_err_probe() itself.
>
> Fixes: 6a0ee2a61a31 ("mfd: wcd934x: Replace legacy gpio interface for gpiod")
> Signed-off-by: Christophe JAILLET <[email protected]>
> ---
> drivers/mfd/wcd934x.c | 9 +++++++--
> 1 file changed, 7 insertions(+), 2 deletions(-)

Applied, thanks

--
Lee Jones [李琼斯]