macb: process the RX ring regardless of interrupt status
authorErik Waling <erik.waling@konftel.com>
Wed, 15 Apr 2009 23:32:11 +0000 (23:32 +0000)
committerDavid S. Miller <davem@davemloft.net>
Fri, 17 Apr 2009 08:30:34 +0000 (01:30 -0700)
commitf72f550c5885419ee1b32f47213087e6640e766b
tree312d614efcb30f54ea609d2a48315faad5190047
parentee33c58541bae92669fe64a39f695ab533d0de14
macb: process the RX ring regardless of interrupt status

Suppose that we receive lots of frames, start processing them, but
exhaust our budget so that we return before we had a chance to look
at all of them.

Then, when the network layer calls us again, we will only continue
processing the buffers if the REC bit was set in the mean time, which it
might not be if there was a brief pause in the flow of packets. If this
happens, we'll simply display a warning and call netif_rx_complete()
with potentially lots of unprocessed packets in the RX ring...

Fix this by scanning the ring no matter what flags are set in the
interrupt status register.

Signed-off-by: Erik Waling <erik.waling@konftel.com>
Signed-off-by: Haavard Skinnemoen <haavard.skinnemoen@atmel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/macb.c