]> git.baikalelectronics.ru Git - kernel.git/commit
mv643xx_eth: fix NAPI 'rotting packet' issue
authorLennert Buytenhek <buytenh@wantstofly.org>
Sun, 24 Aug 2008 00:45:32 +0000 (02:45 +0200)
committerLennert Buytenhek <buytenh@marvell.com>
Sun, 24 Aug 2008 01:32:56 +0000 (03:32 +0200)
commitbe010a1ea6f7430df3979bd71e42c977cfe86130
treee9cffe7c32e761da3a495bd51d1a9d5929a803dc
parente95324920d5b477f43cdc2878e92ff7cca88223d
mv643xx_eth: fix NAPI 'rotting packet' issue

When a receive interrupt occurs, mv643xx_eth would first process the
receive descriptors and then ACK the receive interrupt, instead of the
other way round.

This would leave a small race window between processing the last
receive descriptor and clearing the receive interrupt status in which
a new packet could come in, which would then 'rot' in the receive
ring until the next receive interrupt would come in.

Fix this by ACKing (clearing) the receive interrupt condition before
processing the receive descriptors.

Signed-off-by: Lennert Buytenhek <buytenh@marvell.com>
drivers/net/mv643xx_eth.c