From 102bae55517602afa3d7034cb0e416f8dbbb9c53 Mon Sep 17 00:00:00 2001 From: Alexander Duyck Date: Mon, 5 Oct 2009 06:35:23 +0000 Subject: [PATCH] --- yaml --- r: 170440 b: refs/heads/master c: ab576389b733b458495529f81839f499b3fece78 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/drivers/net/igb/e1000_phy.c | 10 ++++++++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index 12efd17fdfee..467a1b2599e8 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 81fadd81a5bc897c8d0424d1cd90cb999d8e12b0 +refs/heads/master: ab576389b733b458495529f81839f499b3fece78 diff --git a/trunk/drivers/net/igb/e1000_phy.c b/trunk/drivers/net/igb/e1000_phy.c index b27275d7ff6d..5fe03e114b83 100644 --- a/trunk/drivers/net/igb/e1000_phy.c +++ b/trunk/drivers/net/igb/e1000_phy.c @@ -1444,8 +1444,14 @@ s32 igb_phy_has_link(struct e1000_hw *hw, u32 iterations, * it across the board. */ ret_val = hw->phy.ops.read_reg(hw, PHY_STATUS, &phy_status); - if (ret_val) - break; + if (ret_val) { + /* + * If the first read fails, another entity may have + * ownership of the resources, wait and try again to + * see if they have relinquished the resources yet. + */ + udelay(usec_interval); + } ret_val = hw->phy.ops.read_reg(hw, PHY_STATUS, &phy_status); if (ret_val) break;