Re: [PATCH 1/2] iio: adc: mcp320x: use device managed functions

From: Andy Shevchenko
Date: Mon Aug 29 2022 - 04:17:12 EST


On Sun, Aug 28, 2022 at 8:40 PM Jonathan Cameron <jic23@xxxxxxxxxx> wrote:
> On Fri, 26 Aug 2022 14:57:44 +0300
> Andy Shevchenko <andy.shevchenko@xxxxxxxxx> wrote:
> > On Friday, August 26, 2022, Vincent Whitchurch <vincent.whitchurch@xxxxxxxx>
> > wrote:
> > > On Thu, Aug 25, 2022 at 10:01:58PM +0200, Andy Shevchenko wrote:
> > > > On Wed, Aug 24, 2022 at 1:46 PM Vincent Whitchurch
> > > > <vincent.whitchurch@xxxxxxxx> wrote:
> > > > >
> > > > > Use devm_* functions in probe to remove some code and to make it easier
> > > > > to add further calls to the probe function.
> > > >
> > > > ...
> > > >
> > > > > + mutex_init(&adc->lock);
> > > >
> > > > > + return devm_iio_device_register(&spi->dev, indio_dev);
> > > >
> > > > Do you still need to destroy the mutex? If so, you may not call devm_
> > > > variant of iio_device_register() or you have to wrap mutex_destroy()
> > > > accordingly.
> > >
> > > mutex_destroy() is only used to ensure that mutex debugging catches
> > > further use of the mutex. Isn't it rather overkill to add specific
> > > cleanup to do only that, especially in this case when it's anyway going
> > > to get freed immediately afterwards? The vast majority of IIO drivers
> > > don't call mutex_destroy() (256 calls to mutex_init() in HEAD vs 12 to
> > > mutex_destroy()).
> >
> > So 256 - 12 = 244 drivers are not pedantic.
>
> I long ago decided mutex_destroy() in remove() paths just isn't worth the
> effort. It makes absolute sense in more complex flows, but in cases
> like this it's just annoying and makes the cleanup harder.
>
> Hence I'd prefer we just ignore it's existence in cases like this.
>
> If someone finds me a bug that it would have caught then I might
> change my mind ;)
>
> If anyone wants a giggle via adding a devm_mutex_init() call it
> might be interesting to see the responses. Would be unusual in
> that it would just be mutex_init() in unless the mutex debugging
> is turned on...

Agree on these points. Sometimes too much pedanticy is too much.

--
With Best Regards,
Andy Shevchenko