linux/drivers/net/ethernet/altera
Vlastimil Setka 8d4ac39df0 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>
2015-02-23 18:07:36 -05:00
..
altera_msgdma.c Altera TSE: Fix sparse errors and warnings 2014-05-15 16:46:46 -04:00
altera_msgdma.h Altera TSE: Work around unaligned DMA receive packet issue with Altera SGDMA 2014-04-26 12:26:26 -04:00
altera_msgdmahw.h Altera TSE: Fix sparse errors and warnings 2014-05-15 16:46:46 -04:00
altera_sgdma.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2014-05-24 00:32:30 -04:00
altera_sgdma.h Altera TSE: Work around unaligned DMA receive packet issue with Altera SGDMA 2014-04-26 12:26:26 -04:00
altera_sgdmahw.h Altera TSE: Fix sparse errors and warnings 2014-05-15 16:46:46 -04:00
altera_tse_ethtool.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2014-05-24 00:32:30 -04:00
altera_tse_main.c altera_tse: Fixes in NAPI and interrupt handling paths 2015-02-23 18:07:36 -05:00
altera_tse.h Altera TSE: Fix sparse errors and warnings 2014-05-15 16:46:46 -04:00
altera_utils.c Altera TSE: Fix sparse errors and warnings 2014-05-15 16:46:46 -04:00
altera_utils.h Altera TSE: Fix sparse errors and warnings 2014-05-15 16:46:46 -04:00
Kconfig Altera TSE: ALTERA_TSE should depend on HAS_DMA 2014-05-05 13:16:22 -04:00
Makefile Altera TSE: Fix sparse errors and warnings 2014-05-15 16:46:46 -04:00