Re: [PATCH v2] iio: chemical: scd30: Use devm_mutex_init() over non-devm mutex_init()

From: David Lechner

Date: Thu Jun 04 2026 - 12:51:53 EST


On Thu, Jun 4, 2026 at 3:17 PM Maxwell Doose <m32285159@xxxxxxxxx> wrote:
>
> The current code uses mutex_init() instead of devm_mutex_init(), which
> is incorrect as the rest of the file uses the devm automatic resource
> management API. Fix this so that the mutex is set up in the same way as
> the rest of the device data structure.
>
> Signed-off-by: Maxwell Doose <m32285159@xxxxxxxxx>
> ---
> v2:
> - Drop fixes tag per Jonathan's suggestion.
> - Replace dev_err_probe() with return -ENOMEM per Jonathan and Andy's
> suggestions.
>
> drivers/iio/chemical/scd30_core.c | 5 ++++-
> 1 file changed, 4 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/iio/chemical/scd30_core.c b/drivers/iio/chemical/scd30_core.c
> index db5cc295aeab..198add58affd 100644
> --- a/drivers/iio/chemical/scd30_core.c
> +++ b/drivers/iio/chemical/scd30_core.c
> @@ -714,7 +714,10 @@ int scd30_probe(struct device *dev, int irq, const char *name, void *priv,
> state->pressure_comp = SCD30_PRESSURE_COMP_DEFAULT;
> state->meas_interval = SCD30_MEAS_INTERVAL_DEFAULT;
> state->command = command;
> - mutex_init(&state->lock);
> + ret = devm_mutex_init(dev, &state->lock);
> + if (ret)
> + return -ENOMEM;

Why are we ignoring ret?

I would expect:

return ret;

> +
> init_completion(&state->meas_ready);
>
> dev_set_drvdata(dev, indio_dev);
> --
> 2.54.0
>