diff --git a/drivers/power/power_supply_core.c b/drivers/power/power_supply_core.c index 7657335ea7f99064a90da5d3112bac2d9b91ded3..8a86cd138de8c91a7496064c068f33bd8b0f028e 100644 --- a/drivers/power/power_supply_core.c +++ b/drivers/power/power_supply_core.c @@ -218,12 +218,12 @@ static int power_supply_check_supplies(struct power_supply *psy) break; ret = power_supply_find_supply_from_node(np); + of_node_put(np); + if (ret) { dev_dbg(psy->dev, "Failed to find supply, defer!\n"); - of_node_put(np); return -EPROBE_DEFER; } - of_node_put(np); } while (np); /* Missing valid "power-supplies" entries */