On Mon, Feb 05, 2024 at 10:34:01AM +0100, Bartosz Golaszewski wrote: > From: Bartosz Golaszewski <bartosz.golaszewski@xxxxxxxxxx> > > Extend the GPIO descriptor with an SRCU structure in order to serialize > the access to the label. Initialize and clean it up where applicable. ... > + for (i = 0; i < gdev->ngpio; i++) > + cleanup_srcu_struct(&gdev->descs[i].srcu); for_each_gpio_desc()? (It might be that the latter should be reworked a bit first, dunno) ... > + for (j = 0; j < i; j++) > + cleanup_srcu_struct(&desc->srcu); What does this loop mean? > + goto err_remove_of_chip; > + } ... > +err_cleanup_desc_srcu: > + for (i = 0; i < gdev->ngpio; i++) > + cleanup_srcu_struct(&gdev->descs[i].srcu); As per above (use existing for_each macro), ... > + struct srcu_struct srcu; > }; I am wondering if moving it to the top of the struct will give a more performant code. -- With Best Regards, Andy Shevchenko