On Tue, Nov 28, 2023 at 5:09 PM Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx> wrote: > > On Mon, Nov 27, 2023 at 08:37:16PM +0100, Bartosz Golaszewski wrote: > > From: Bartosz Golaszewski <bartosz.golaszewski@xxxxxxxxxx> > > > > The global list of GPIO devices is never modified or accessed from > > atomic context so it's fine to protect it using a mutex. Add a new > > global lock dedicated to the gpio_devices list and use it whenever > > accessing or modifying it. > > > > While at it: fold the sysfs registering of existing devices into > > gpiolib.c and make gpio_devices static within its compilation unit. > > ... > > > + scoped_guard(mutex, &gpio_devices_lock) { > > This is a lot of churn with this because of switching to RAII. > Can the body be firstly moved to a helper? > But that would mean more churn. I don't get why you insist on splitting these everytime. We're going from spinlock to a mutex so we may as well use guards right away. > > + /* > > + * TODO: this allocates a Linux GPIO number base in the global > > + * GPIO numberspace for this chip. In the long run we want to > > + * get *rid* of this numberspace and use only descriptors, but > > + * it may be a pipe dream. It will not happen before we get rid > > + * of the sysfs interface anyways. > > + */ > > ... > > > list_for_each_entry(gdev, &gpio_devices, list) > > + if (index-- == 0) > > return gdev; > > I believe this is better with outer {}. > Right. Bart > -- > With Best Regards, > Andy Shevchenko > >