patch "iio: ad7292: Prevent regulator double disable" added to char-misc-linus
This is a note to let you know that I've just added the patch titled
iio: ad7292: Prevent regulator double disable
to my char-misc git tree which can be found at
git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc.git
in the char-misc-linus branch.
The patch will show up in the next release of the linux-next tree (usually sometime within the next 24 hours during the week.)
The patch will hopefully also be merged in Linus's tree for the next -rc kernel release.
If you have any questions about this process, please let me know.
From 22b4277641c6823ec03d5b1cd82628e5e53e75b7 Mon Sep 17 00:00:00 2001
From: Matti Vaittinen <[email protected]>
Date: Fri, 19 Aug 2022 11:51:07 +0300
Subject: iio: ad7292: Prevent regulator double disable
The ad7292 tries to add an devm_action for disabling a regulator at device detach using devm_add_action_or_reset(). The devm_add_action_or_reset() does call the release function should adding action fail. The driver inspects the value returned by devm_add_action_or_reset() and manually calls regulator_disable() if adding the action has failed. This leads to double disable and messes the enable count for regulator.
Do not manually call disable if devm_add_action_or_reset() fails.
--- drivers/iio/adc/ad7292.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-)
drivers/iio/adc/ad7292.c +1 -3
@@ -287,10 +287,8 @@ static int ad7292_probe(struct spi_device *spi) ret =devm_add_action_or_reset (&spi->dev, ad7292_regulator_disable, st); -if (ret) { -regulator_disable (st->reg); +if (ret)return ret; - } ret =regulator_get_voltage (st->reg);if (ret <0 )
Signature · 1 line
2.37.2