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