On Thu, Dec 14, 2023 at 11:46:54PM +0800, Kent Gibson wrote: > On Thu, Dec 14, 2023 at 11:34:44PM +0800, Kent Gibson wrote: > > 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. > > > > Hang on - patch 4 has to use a scoped_guard(), so are you ok for patch 1 > to introduce a guard(), to avoid changing the indentation, only to > replace it with a scoped_guard(), to perform the tests after releasing > the lock, in patch 4? > Alternatively, I can move patch 4 to the top of the series. Cheers, Kent.