Re: [PATCH 03/15] iio: adc: axp288_adc: do not use internal iio_dev lock

Andy Shevchenko
2022-09-20T13:38:28Z

On Tue, Sep 20, 2022 at 4:18 PM Sa, Nuno <Nuno.Sa@analog.com> wrote:
> > On Tue, Sep 20, 2022 at 2:28 PM Nuno Sá <nuno.sa@analog.com> wrote:

...

> > > info = iio_priv(indio_dev);
> > > + mutex_init(&info->lock);
> > > info->irq = platform_get_irq(pdev, 0);
> > > if (info->irq < 0)
> > > return info->irq;
> >
> > Consider initializing it as late as possible, like after IRQ retrieval
> > in this context (maybe even deeper, but no context available). Ditto
> > for the rest of the series.
>
> Any special reason for it (maybe related to lockdep :wondering: ) ? Just
> curious as I never noticed such a pattern when initializing mutexes.

Yes. Micro-optimization based on the rule "don't create a resource in
case of known error".

OTOH, you have to be sure that the mutex (and generally speaking a
locking) should be initialized early enough.

--
With Best Regards,
Andy Shevchenko