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

Jonathan Cameron jic23 at kernel.org
Fri Jun 3 09:18:52 PDT 2022


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

> On Thu, Jun 2, 2022 at 2:08 PM Lars-Peter Clausen <lars at metafoo.de> 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





More information about the linux-arm-kernel mailing list