Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8dacd548 authored by Steve Glendinning's avatar Steve Glendinning Committed by David S. Miller
Browse files

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: default avatarSteve Glendinning <steve.glendinning@smsc.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 273ae44b
Loading
Loading
Loading
Loading
+1 −1
Original line number Original line Diff line number Diff line
@@ -955,7 +955,7 @@ smsc911x_rx_fastforward(struct smsc911x_data *pdata, unsigned int pktbytes)
		do {
		do {
			udelay(1);
			udelay(1);
			val = smsc911x_reg_read(pdata, RX_DP_CTRL);
			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))
		if (unlikely(timeout == 0))
			SMSC_WARNING(HW, "Timed out waiting for "
			SMSC_WARNING(HW, "Timed out waiting for "