]> git.baikalelectronics.ru Git - kernel.git/commit
net: nps_enet: bug fix - handle lost tx interrupts
authorElad Kanfi <eladkan@mellanox.com>
Mon, 9 May 2016 17:13:20 +0000 (20:13 +0300)
committerDavid S. Miller <davem@davemloft.net>
Tue, 10 May 2016 19:04:49 +0000 (15:04 -0400)
commitd4b21af7367a069f1ae68df8b3c1f392942b050d
tree8d54a352040648ddc202a7e93a2d31ea29b97c0b
parent4f7f89e9f862ff6c2c06ccada1ba22dc0284a917
net: nps_enet: bug fix - handle lost tx interrupts

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>
drivers/net/ethernet/ezchip/nps_enet.c