diff options
author | Michal Simek <michal.simek@xilinx.com> | 2021-04-26 14:26:48 +0200 |
---|---|---|
committer | Michal Simek <michal.simek@xilinx.com> | 2021-04-29 10:05:56 +0200 |
commit | 0a9f0e0d00e0e8b2c5b6a2ae844c5ebca684616f (patch) | |
tree | 0b81e3e7f46eaa9513f516aa6df8696583777665 /drivers/net/phy | |
parent | 0b0705b5ed7865a1c86a3ed6ece82346e5f2e57f (diff) | |
download | u-boot-0a9f0e0d00e0e8b2c5b6a2ae844c5ebca684616f.tar.gz u-boot-0a9f0e0d00e0e8b2c5b6a2ae844c5ebca684616f.tar.bz2 u-boot-0a9f0e0d00e0e8b2c5b6a2ae844c5ebca684616f.zip |
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 <michal.simek@xilinx.com>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
Diffstat (limited to 'drivers/net/phy')
-rw-r--r-- | drivers/net/phy/phy.c | 4 |
1 files changed, 2 insertions, 2 deletions
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, |