Re: [PATCH v2 3/3] iio: adc: meson_saradc: Use temporary variable for struct device

From: Jonathan Cameron
Date: Fri Jun 03 2022 - 12:10:08 EST


On Thu, 2 Jun 2022 15:45:27 +0200
Andy Shevchenko <andy.shevchenko@xxxxxxxxx> wrote:

> On Thu, Jun 2, 2022 at 2:08 PM Lars-Peter Clausen <lars@xxxxxxxxxx> wrote:
> > On 6/2/22 13:42, Andy Shevchenko wrote:
>
> ...
>
> > > - priv->adc_clk = devm_clk_register(&indio_dev->dev, &priv->clk_gate.hw);
> > > + priv->adc_clk = devm_clk_register(idev, &priv->clk_gate.hw);
> >
> > You are not changing anything here.
>
> The scope of patch is supposed not to change the current behaviour :-)
>
> > But we shouldn't be devm'ing on the
> > IIO device. It will get freed eventually, but only when the last
> > reference to the iio device has been dropped, which might be long after
> > the platform device has been removed. devm'ing should happen on the
> > platform_device's device. Might be worth fixing.
>
> Thanks for confirming my suspicions (as I mentioned to Martin, using
> an IIO device there feels wrong).
> I will add another patch to v3.
>

I thought that the iio_dev ends up holding a reference to the platform
device dev so the parent would only be released if the child had already been,
but I may well be wrong on that.

Either way I don't mind it being tidied up.

Jonathan