From: Francois Romieu Date: Sat, 16 Jun 2007 21:28:45 +0000 (+0200) Subject: r8169: de-obfuscate modulo arithmetic X-Git-Tag: v2.6.23-rc1~1201^2~24 X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=4ae47c2ddc55e3c571bb55fca921cfe9b02a685f;p=linux-2.6 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: Francois Romieu Cc: Edward Hsu --- diff --git a/drivers/net/r8169.c b/drivers/net/r8169.c index 45864461aa..1f7fb541ec 100644 --- a/drivers/net/r8169.c +++ b/drivers/net/r8169.c @@ -2040,10 +2040,12 @@ static u32 rtl8169_rx_fill(struct rtl8169_private *tp, struct net_device *dev, { u32 cur; - for (cur = start; end - cur > 0; cur++) { + for (cur = start; end - cur != 0; cur++) { struct sk_buff *skb; unsigned int i = cur % NUM_RX_DESC; + WARN_ON((s32)(end - cur) < 0); + if (tp->Rx_skbuff[i]) continue;