On Mon, Feb 03, 2025 at 12:01:23PM GMT, Bartosz Golaszewski wrote: > From: Bartosz Golaszewski <bartosz.golaszewski@xxxxxxxxxx> > > Depending on the user config, the leaf entry may be the hog directory, > not line. Check it and lock the correct item. > > Fixes: 8bd76b3d3f3a ("gpio: sim: lock up configfs that an instantiated device depends on") > Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@xxxxxxxxxx> > --- > drivers/gpio/gpio-sim.c | 11 +++++++---- > 1 file changed, 7 insertions(+), 4 deletions(-) > > diff --git a/drivers/gpio/gpio-sim.c b/drivers/gpio/gpio-sim.c > index a086087ada17..b843682b47e9 100644 > --- a/drivers/gpio/gpio-sim.c > +++ b/drivers/gpio/gpio-sim.c > @@ -1028,6 +1028,7 @@ gpio_sim_device_lockup_configfs(struct gpio_sim_device *dev, bool lock) > struct configfs_subsystem *subsys = dev->group.cg_subsys; > struct gpio_sim_bank *bank; > struct gpio_sim_line *line; > + struct config_item *item; > > /* > * The device only needs to depend on leaf line entries. This is > @@ -1036,12 +1037,14 @@ gpio_sim_device_lockup_configfs(struct gpio_sim_device *dev, bool lock) > */ > list_for_each_entry(bank, &dev->bank_list, siblings) { > list_for_each_entry(line, &bank->line_list, siblings) { > + item = line->hog ? &line->hog->item > + : &line->group.cg_item; > + > if (lock) > - WARN_ON(configfs_depend_item_unlocked( > - subsys, &line->group.cg_item)); > + WARN_ON(configfs_depend_item_unlocked(subsys, > + item)); > else > - configfs_undepend_item_unlocked( > - &line->group.cg_item); > + configfs_undepend_item_unlocked(item); > } > } > } > -- > 2.45.2 > Thanks for spotting this and the fix. Tested-by: Koichiro Den <koichiro.den@xxxxxxxxxxxxx>