On Tue, Dec 21, 2021 at 12:32 PM Yang Yingliang <yangyingliang@xxxxxxxxxx> wrote: > > Calling fwnode_handle_put() when break out of device_for_each_child_node(), > or the device node reference will be leakd. > > Fixes: 83960fcf4818 ("gpio: sim: new testing module") > Reported-by: Hulk Robot <hulkci@xxxxxxxxxx> > Signed-off-by: Yang Yingliang <yangyingliang@xxxxxxxxxx> > --- > drivers/gpio/gpio-sim.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/drivers/gpio/gpio-sim.c b/drivers/gpio/gpio-sim.c > index ef6145f51c8a..520ee923b516 100644 > --- a/drivers/gpio/gpio-sim.c > +++ b/drivers/gpio/gpio-sim.c > @@ -444,8 +444,10 @@ static int gpio_sim_probe(struct platform_device *pdev) > > device_for_each_child_node(dev, swnode) { > ret = gpio_sim_add_bank(swnode, dev); > - if (ret) > + if (ret) { > + fwnode_handle_put(swnode); > return ret; > + } > } > > return 0; > -- > 2.25.1 > Applied, thanks! Bart