On Thu, Dec 14, 2023 at 05:27:29PM +0200, Andy Shevchenko wrote: > On Thu, Dec 14, 2023 at 11:19:01PM +0800, Kent Gibson wrote: > > On Thu, Dec 14, 2023 at 05:10:23PM +0200, Andy Shevchenko wrote: > > > On Thu, Dec 14, 2023 at 05:58:13PM +0800, Kent Gibson wrote: > > > > Reduce the time holding the gpio_lock by snapshotting the desc flags, > > > > rather than testing them individually while holding the lock. > > > > > > > > Accept that the calculation of the used field is inherently racy, and > > > > only check the availability of the line from pinctrl if other checks > > > > pass, so avoiding the check for lines that are otherwise in use. > > ... > > > > > - spin_lock_irqsave(&gpio_lock, flags); > > > > > > Shouldn't this be covered by patch 1 (I mean conversion to scoped_guard() > > > instead of spinlock)? > > > > > > > Read the cover letter. > > Doing that made the change larger, as flags gets removed then restored. > > I had also thought the flag tests would get indented then unindented, but > > if we use guard() the indentation should remain unchanged. > > I'm fine with that as I pointed out (have you received that mail? I had > problems with my mail server) the dflags is better semantically, so restoration > with _different_ name is fine. > I have noted that some of your replies have been delayed, and I can't be sure of what I might not've received. I can't say I've seen one that mentions the dflags name being preferable. I prefer the plain flags name, if there is only one flag variable in the function. > > Can do it in 1 if you are happy with the flags declaration being > > removed in patch 1 and restored in 4. > > Definitely. > Ok will re-arrange in v3. Cheers, Kent.