summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichal Simek <michal.simek@xilinx.com>2021-04-26 14:26:48 +0200
committerMichal Simek <michal.simek@xilinx.com>2021-04-29 10:05:56 +0200
commit0a9f0e0d00e0e8b2c5b6a2ae844c5ebca684616f (patch)
tree0b81e3e7f46eaa9513f516aa6df8696583777665
parent0b0705b5ed7865a1c86a3ed6ece82346e5f2e57f (diff)
downloadu-boot-0a9f0e0d00e0e8b2c5b6a2ae844c5ebca684616f.tar.gz
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>
-rw-r--r--drivers/net/phy/phy.c4
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,