On Wed, Dec 13, 2023 at 11:59:26PM +0800, Kent Gibson wrote: > On Wed, Dec 13, 2023 at 04:40:12PM +0100, Bartosz Golaszewski wrote: > > On Wed, Dec 13, 2023 at 3:27 PM Kent Gibson <warthog618@xxxxxxxxx> wrote: > > > On Wed, Dec 13, 2023 at 03:54:53PM +0200, Andy Shevchenko wrote: > > > > On Tue, Dec 12, 2023 at 01:42:50PM +0800, Kent Gibson wrote: ... > > > > > +static struct supinfo supinfo; > > > > > > > > Why supinfo should be a struct to begin with? Seems to me as an unneeded > > > > complication. > > > > I think we should keep it as a struct but defined the following way: > > > > struct { > > spinlock_t lock; > > struct rb_root tree; > > } supinfo; > > That is what I meant be merging the struct definition with the variable > definition. Or is there some other way to completely do away with the > struct that I'm missing? Look at the top of gpiolib.c: static DEFINE_MUTEX(gpio_lookup_lock); static LIST_HEAD(gpio_lookup_list); In the similar way you can simply do static DEFINE_SPINLOCK(gpio_sup_lock); static struct rb_root gpio_sup_tree; > > > Yeah, that is a hangover from an earlier iteration where supinfo was > > > contained in other object rather than being a global. > > > Could merge the struct definition into the variable now. -- With Best Regards, Andy Shevchenko