On Wed, Sep 20, 2023 at 10:56 AM Bartosz Golaszewski <brgl@xxxxxxxx> wrote: > From: Bartosz Golaszewski <bartosz.golaszewski@xxxxxxxxxx> > > There are two places in the code where we retrieve a lookup table using > gpiod_find_lookup_table() (which protects the table list with the lookup > table lock) and then use it after the lock is released. > > We need to keep the lookup table mutex locked the entire time we're using > the tables. Remove the locking from gpiod_find_lookup_table() and use > guards to protect the code actually using the table objects. > > Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@xxxxxxxxxx> I convinced myself that this change is correct, good find! > @@ -3822,8 +3822,6 @@ static struct gpiod_lookup_table *gpiod_find_lookup_table(struct device *dev) Can we rename this function gpiod_find_lookup_table_locked() as per precedents in the kernel, to indicate that it needs to be called with a lock held? Either way: Reviewed-by: Linus Walleij <linus.walleij@xxxxxxxxxx> Yours, Linus Walleij