On 2024/10/20 15:23, Christophe JAILLET wrote: > Le 20/10/2024 à 07:27, Zijun Hu a écrit : >> From: Zijun Hu <quic_zijuhu@xxxxxxxxxxx> [snip] >> --- >> drivers/phy/phy-core.c | 5 +++-- >> 1 file changed, 3 insertions(+), 2 deletions(-) >> >> diff --git a/drivers/phy/phy-core.c b/drivers/phy/phy-core.c >> index 967878b78797..24bd619a33dd 100644 >> --- a/drivers/phy/phy-core.c >> +++ b/drivers/phy/phy-core.c >> @@ -143,10 +143,11 @@ static struct phy_provider >> *of_phy_provider_lookup(struct device_node *node) >> list_for_each_entry(phy_provider, &phy_provider_list, list) { >> if (phy_provider->dev->of_node == node) >> return phy_provider; >> - >> for_each_child_of_node(phy_provider->children, child) >> - if (child == node) >> + if (child == node) { >> + of_node_put(child); >> return phy_provider; >> + } > > Hi, > > Maybe for_each_child_of_node_scoped() to slightly simplify things at the > same time? > thank you for code review. it does not use _scoped() since for_each_child_of_node() usage here is very simple and only has one early exit, _scoped() normally is for complex case. i maybe use _scoped() in next revision if one more reviewer also prefers it. thank you. >> } >> return ERR_PTR(-EPROBE_DEFER); >> >