diff --git a/[refs] b/[refs] index 83328b20179e..998d0aeaec9c 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 833cc67c7722e35863c6aaee9df56b442ef957ae +refs/heads/master: 3935358ebcb8320965478c0e8ee070e1d65851c8 diff --git a/trunk/drivers/net/igb/e1000_mbx.c b/trunk/drivers/net/igb/e1000_mbx.c index 840782fb5736..ed9058eca45c 100644 --- a/trunk/drivers/net/igb/e1000_mbx.c +++ b/trunk/drivers/net/igb/e1000_mbx.c @@ -140,13 +140,13 @@ static s32 igb_poll_for_msg(struct e1000_hw *hw, u16 mbx_id) struct e1000_mbx_info *mbx = &hw->mbx; int countdown = mbx->timeout; - if (!mbx->ops.check_for_msg) + if (!countdown || !mbx->ops.check_for_msg) goto out; while (mbx->ops.check_for_msg(hw, mbx_id)) { + countdown--; if (!countdown) break; - countdown--; udelay(mbx->usec_delay); } out: @@ -165,13 +165,13 @@ static s32 igb_poll_for_ack(struct e1000_hw *hw, u16 mbx_id) struct e1000_mbx_info *mbx = &hw->mbx; int countdown = mbx->timeout; - if (!mbx->ops.check_for_ack) + if (!countdown || !mbx->ops.check_for_ack) goto out; while (mbx->ops.check_for_ack(hw, mbx_id)) { + countdown--; if (!countdown) break; - countdown--; udelay(mbx->usec_delay); } out: