From: Steve Glendinning Date: Wed, 4 Mar 2009 07:33:24 +0000 (+0000) Subject: smsc911x: check for FFWD success before checking for timeout X-Git-Url: http://git.lede-project.org./?a=commitdiff_plain;h=8dacd548129d03e87751f75ea83b42a8a17ee651;p=openwrt%2Fstaging%2Fblogic.git smsc911x: check for FFWD success before checking for timeout 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 Signed-off-by: David S. Miller --- diff --git a/drivers/net/smsc911x.c b/drivers/net/smsc911x.c index dceae8a65809..9a795105cc7c 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 "