Re: [PATCH v2 1/5] iio: st_sensors: disable regulators after device unregistration

From: Linus Walleij
Date: Mon Aug 16 2021 - 18:50:22 EST


On Mon, Aug 16, 2021 at 10:30 AM Alexandru Ardelean
<aardelean@xxxxxxxxxxx> wrote:

> Up until commit ea7e586bdd331 ("iio: st_sensors: move regulator retrieveal
> to core") only the ST pressure driver seems to have had any regulator
> disable. After that commit, the regulator handling was moved into the
> common st_sensors logic.
>
> In all instances of this regulator handling, the regulators were disabled
> before unregistering the IIO device.
> This can cause issues where the device would be powered down and still be
> available to userspace, allowing it to send invalid/garbage data.
>
> This change moves the st_sensors_power_disable() after the common probe
> functions. These common probe functions also handle unregistering the IIO
> device.
>
> Fixes: 774487611c949 ("iio: pressure-core: st: Provide support for the Vdd power supply")
> Fixes: ea7e586bdd331 ("iio: st_sensors: move regulator retrieveal to core")
> Cc: Lee Jones <lee.jones@xxxxxxxxxx>
> Cc: Denis CIOCCA <denis.ciocca@xxxxxx>
> Cc: Linus Walleij <linus.walleij@xxxxxxxxxx>
> Cc: Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx>
> Signed-off-by: Alexandru Ardelean <aardelean@xxxxxxxxxxx>

That's a valid concern I suppose:
Reviewed-by: Linus Walleij <linus.walleij@xxxxxxxxxx>

But as it now occurs last before return 0, can't we just solve
this with a
devm_add_action_or_reset(dev, st_sensors_power_off_action, *);
of some kind and let devres handle it?

c.f
drivers/input/touchscreen/cy8ctma140.c

Yours,
Linus Walleij