diff options
author | Lennert Buytenhek <buytenh@wantstofly.org> | 2006-10-30 19:52:31 +0100 |
---|---|---|
committer | Jeff Garzik <jeff@garzik.org> | 2006-10-31 20:22:05 -0500 |
commit | 2d38caba5fd148976f54930782e8209fa45879a0 (patch) | |
tree | 7f8bc1ee29d9bfc79ecb9a609084526a874df492 /lib/semaphore-sleepers.c | |
parent | d5b9b787b5e1618dfe82a2c2a6972374e85b02db (diff) |
[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 'lib/semaphore-sleepers.c')
0 files changed, 0 insertions, 0 deletions