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)
commit05c00d82f4d170987ac29607e7f3c27223b52d1e
tree8d54a352040648ddc202a7e93a2d31ea29b97c0b
parente5df49d564fe993c68f5cff6d96972a6358b4958
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