[PATCH v2] iio: admv1013: initialize callback mutex before registering notifier

From: Runyu Xiao

Date: Wed Aug 19 2026 - 10:22:21 EST


admv1013_probe() registers a clock notifier whose callback takes st->lock
on POST_RATE_CHANGE. Initialize the mutex before
devm_clk_notifier_register() so the callback cannot observe an
uninitialized lock during probe.

Use devm_mutex_init() so the lock lifetime is tied to the device and
cleanup stays paired with the rest of the managed probe resources.

Fixes: da35a7b526d9 ("iio: frequency: admv1013: add support for ADMV1013")
Cc: stable@xxxxxxxxxxxxxxx
Signed-off-by: Runyu Xiao <runyu.xiao@xxxxxxxxxx>
---
drivers/iio/frequency/admv1013.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/drivers/iio/frequency/admv1013.c b/drivers/iio/frequency/admv1013.c
index d8e8d541990f..ff599b5c88ef 100644
--- a/drivers/iio/frequency/admv1013.c
+++ b/drivers/iio/frequency/admv1013.c
@@ -594,11 +594,13 @@ static int admv1013_probe(struct spi_device *spi)
"failed to get the LO input clock\n");

st->nb.notifier_call = admv1013_freq_change;
- ret = devm_clk_notifier_register(&spi->dev, st->clkin, &st->nb);
+ ret = devm_mutex_init(&spi->dev, &st->lock);
if (ret)
return ret;

- mutex_init(&st->lock);
+ ret = devm_clk_notifier_register(&spi->dev, st->clkin, &st->nb);
+ if (ret)
+ return ret;

ret = admv1013_init(st, vcm_uv);
if (ret) {
--
2.34.1