diff options
author | Vlastimil Setka <setka@vsis.cz> | 2015-02-23 11:30:29 -0600 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2015-02-23 18:07:36 -0500 |
commit | 8d4ac39df09c6f8078af60cd0ddd7b2435728e72 (patch) | |
tree | b0d70b339c11f59b89dc18987ccb7f755ca1132e /net | |
parent | fe6e4081a626d2987b73c9b15ed520b4f22d585f (diff) | |
download | linux-8d4ac39df09c6f8078af60cd0ddd7b2435728e72.tar.bz2 |
altera_tse: Fixes in NAPI and interrupt handling paths
Incorrect NAPI polling caused WARNING at net/core/dev.c net_rx_action.
Some stability issues were also seen at high throughput and system
load before this patch.
This patch contains several changes in altera_tse_main.c:
- tse_rx() is fixed to not process more than `limit` frames
- tse_poll() is refactored to match NAPI logic
- only received frames are counted for return value
- removed bogus condition `(rxcomplete >= budget || txcomplete > 0)`
- replace by: if (rxcomplete < budget) -> call __napi_complete and enable irq
- altera_isr()
- replace spin_lock_irqsave() by spin_lock() - we are in isr
- use spinlocks just over irq manipulation, not over __napi_schedule
- reset IRQ first, then disable and schedule napi
This is a cleaned up resubmission from Vlastimil's recent submission.
Signed-off-by: Vlastimil Setka <setka@vsis.cz>
Signed-off-by: Roman Pisl <rpisl@kky.zcu.cz>
Signed-off-by: Vince Bridgers <vbridger@opensource.altera.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net')
0 files changed, 0 insertions, 0 deletions