https://github.com/torvalds/linux
Revision 05c00d82f4d170987ac29607e7f3c27223b52d1e authored by Elad Kanfi on 09 May 2016, 17:13:20 UTC, committed by David S. Miller on 10 May 2016, 19:04:49 UTC
The tx interrupt is of edge type, and in case such interrupt is triggered
while it is masked it will not be handled even after tx interrupts are
re-enabled in the end of NAPI poll.
This will cause tx network to stop in the following scenario:
 * Rx is being handled, hence interrupts are masked.
 * Tx interrupt is triggered after checking if there is some tx to handle
   and before re-enabling the interrupts.
In this situation only rx transaction will release tx requests.

In order to handle the tx that was missed( if there was one ),
a NAPI reschdule was added after enabling the interrupts.

Signed-off-by: Elad Kanfi <eladkan@mellanox.com>
Acked-by: Noam Camus <noamca@mellanox.com>
Acked-by: Gilad Ben-Yossef <giladby@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
1 parent e5df49d
History
Tip revision: 05c00d82f4d170987ac29607e7f3c27223b52d1e authored by Elad Kanfi on 09 May 2016, 17:13:20 UTC
net: nps_enet: bug fix - handle lost tx interrupts
Tip revision: 05c00d8
File Mode Size
boot
configs
include
kernel
lib
mm
Kconfig -rw-r--r-- 1.6 KB
Kconfig.debug -rw-r--r-- 812 bytes
Makefile -rw-r--r-- 1.0 KB

back to top