diff --git a/drivers/gpio/gpio-sim.c b/drivers/gpio/gpio-sim.c index bef00dcc4dc8..838bbfed11d3 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;