diff options
author | Lennert Buytenhek <buytenh@wantstofly.org> | 2006-10-30 19:52:31 +0100 |
---|---|---|
committer | Jeff Garzik <jeff@garzik.org> | 2006-11-01 02:22:05 +0100 |
commit | 2d38caba5fd148976f54930782e8209fa45879a0 (patch) | |
tree | 7f8bc1ee29d9bfc79ecb9a609084526a874df492 /drivers/net/ibmveth.c | |
parent | Merge branch 'release' of master.kernel.org:/pub/scm/linux/kernel/git/aegl/li... (diff) | |
download | linux-2d38caba5fd148976f54930782e8209fa45879a0.tar.xz linux-2d38caba5fd148976f54930782e8209fa45879a0.zip |
[PATCH] ep93xx_eth: fix RX/TXstatus ring full handling
Ray Lehtiniemi reported that an incoming UDP packet flood can lock up
the ep93xx ethernet driver. Herbert Valerio Riedel noted that due to
the way ep93xx_eth manages the RX/TXstatus rings, it cannot distinguish
a full ring from an empty one, and correctly suggested that this was
likely to be causing this lockup to occur.
Instead of looking at the hardware's RX/TXstatus ring write pointers
to determine when to stop reading from those rings, we should just check
every individual RX/TXstatus descriptor's valid bit instead, since there
is no other way to distinguish an empty ring from a full ring, and if
there is a descriptor waiting, we take the hit of reading the descriptor
from memory anyway.
Signed-off-by: Lennert Buytenhek <buytenh@wantstofly.org>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
Diffstat (limited to 'drivers/net/ibmveth.c')
0 files changed, 0 insertions, 0 deletions