From: Michal Simek Date: Mon, 26 Apr 2021 12:26:48 +0000 (+0200) Subject: net: phy: xilinx: Break while loop over ethernet phy X-Git-Tag: v2025.01-rc5-pxa1908~1891^2~1 X-Git-Url: http://git.dujemihanovic.xyz/img/static/git-favicon.png?a=commitdiff_plain;h=0a9f0e0d00e0e8b2c5b6a2ae844c5ebca684616f;p=u-boot.git net: phy: xilinx: Break while loop over ethernet phy The commit 6c993815bbea ("net: phy: xilinx: Be compatible with live OF tree") change driver behavior to while loop which wasn't correct because the driver was looping over again and again. The reason was that ofnode_valid() is taking 0 as correct value. Fix it by changing while loop to ofnode_for_each_subnode() which is only loop over available nodes. Fixes: 6c993815bbea ("net: phy: xilinx: Be compatible with live OF tree") Signed-off-by: Michal Simek Reviewed-by: Bin Meng --- diff --git a/drivers/net/phy/phy.c b/drivers/net/phy/phy.c index dcdef9e661..ed197fa46d 100644 --- a/drivers/net/phy/phy.c +++ b/drivers/net/phy/phy.c @@ -948,9 +948,9 @@ static struct phy_device *phy_connect_gmii2rgmii(struct mii_dev *bus, phy_interface_t interface) { struct phy_device *phydev = NULL; - ofnode node = dev_ofnode(dev); + ofnode node; - while (ofnode_valid(node)) { + ofnode_for_each_subnode(node, dev_ofnode(dev)) { node = ofnode_by_compatible(node, "xlnx,gmii-to-rgmii-1.0"); if (ofnode_valid(node)) { phydev = phy_device_create(bus, 0,