diff options
| -rw-r--r-- | drivers/net/igb/e1000_phy.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/drivers/net/igb/e1000_phy.c b/drivers/net/igb/e1000_phy.c index b27275d7ff6d..5fe03e114b83 100644 --- a/drivers/net/igb/e1000_phy.c +++ b/drivers/net/igb/e1000_phy.c | |||
| @@ -1444,8 +1444,14 @@ s32 igb_phy_has_link(struct e1000_hw *hw, u32 iterations, | |||
| 1444 | * it across the board. | 1444 | * it across the board. |
| 1445 | */ | 1445 | */ |
| 1446 | ret_val = hw->phy.ops.read_reg(hw, PHY_STATUS, &phy_status); | 1446 | ret_val = hw->phy.ops.read_reg(hw, PHY_STATUS, &phy_status); |
| 1447 | if (ret_val) | 1447 | if (ret_val) { |
| 1448 | break; | 1448 | /* |
| 1449 | * If the first read fails, another entity may have | ||
| 1450 | * ownership of the resources, wait and try again to | ||
| 1451 | * see if they have relinquished the resources yet. | ||
| 1452 | */ | ||
| 1453 | udelay(usec_interval); | ||
| 1454 | } | ||
| 1449 | ret_val = hw->phy.ops.read_reg(hw, PHY_STATUS, &phy_status); | 1455 | ret_val = hw->phy.ops.read_reg(hw, PHY_STATUS, &phy_status); |
| 1450 | if (ret_val) | 1456 | if (ret_val) |
| 1451 | break; | 1457 | break; |
