Commit 4ae47c2d authored by Francois Romieu's avatar Francois Romieu Committed by Jeff Garzik

r8169: de-obfuscate modulo arithmetic

The former style suggests a modulo arithmetic misuse but
the expression should never be < 0. Even if it does, the
driver will simply loop longer than expected (not that
the remaining parts of the system will necessarily
appreciate it...).

Let's warn the user when something goes wrong and try
to go over it.
Signed-off-by: default avatarFrancois Romieu <romieu@fr.zoreil.com>
Cc: Edward Hsu <edward_hsu@realtek.com.tw>
parent 15d31758
...@@ -2040,10 +2040,12 @@ static u32 rtl8169_rx_fill(struct rtl8169_private *tp, struct net_device *dev, ...@@ -2040,10 +2040,12 @@ static u32 rtl8169_rx_fill(struct rtl8169_private *tp, struct net_device *dev,
{ {
u32 cur; u32 cur;
for (cur = start; end - cur > 0; cur++) { for (cur = start; end - cur != 0; cur++) {
struct sk_buff *skb; struct sk_buff *skb;
unsigned int i = cur % NUM_RX_DESC; unsigned int i = cur % NUM_RX_DESC;
WARN_ON((s32)(end - cur) < 0);
if (tp->Rx_skbuff[i]) if (tp->Rx_skbuff[i])
continue; continue;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment