[PATCH v2] iio: chemical: scd30: Use devm_mutex_init() over non-devm mutex_init()
From: Maxwell Doose
Date: Thu Jun 04 2026 - 09:23:38 EST
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;
+
init_completion(&state->meas_ready);
dev_set_drvdata(dev, indio_dev);
--
2.54.0