diff mbox

[1/2] smsc911x: check for FFWD success before checking for timeout

Message ID 1236188005-14065-1-git-send-email-steve.glendinning@smsc.com
State Accepted, archived
Delegated to: David Miller
Headers show

Commit Message

Steve Glendinning March 4, 2009, 5:33 p.m. UTC
This patch from Juha Leppanen suppresses a false warning if a fast
forward operation succeeds on the very last attempt.

Juha> If smsc911x_reg_read loop is executed 500 times, timeout reaches 0
Juha> and the 500th smsc911x_reg_read result in val is ignored. If
Juha> testing order is changed, then val is checked first. The 500th
Juha> reg_read might be GOOD, why ignore it!

Signed-off-by: Steve Glendinning <steve.glendinning@smsc.com>
---
 drivers/net/smsc911x.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

Comments

David Miller March 13, 2009, 7:14 p.m. UTC | #1
From: Steve Glendinning <steve.glendinning@smsc.com>
Date: Wed,  4 Mar 2009 17:33:24 +0000

> This patch from Juha Leppanen suppresses a false warning if a fast
> forward operation succeeds on the very last attempt.
> 
> Juha> If smsc911x_reg_read loop is executed 500 times, timeout reaches 0
> Juha> and the 500th smsc911x_reg_read result in val is ignored. If
> Juha> testing order is changed, then val is checked first. The 500th
> Juha> reg_read might be GOOD, why ignore it!
> 
> Signed-off-by: Steve Glendinning <steve.glendinning@smsc.com>

Applied to net-next-2.6
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/drivers/net/smsc911x.c b/drivers/net/smsc911x.c
index dceae8a..9a79510 100644
--- a/drivers/net/smsc911x.c
+++ b/drivers/net/smsc911x.c
@@ -955,7 +955,7 @@  smsc911x_rx_fastforward(struct smsc911x_data *pdata, unsigned int pktbytes)
 		do {
 			udelay(1);
 			val = smsc911x_reg_read(pdata, RX_DP_CTRL);
-		} while (--timeout && (val & RX_DP_CTRL_RX_FFWD_));
+		} while ((val & RX_DP_CTRL_RX_FFWD_) && --timeout);
 
 		if (unlikely(timeout == 0))
 			SMSC_WARNING(HW, "Timed out waiting for "