linux/drivers/net/ethernet/xilinx
Robert Hancock 7de44285c1 net: axienet: Fix race condition causing TX hang
It is possible that the interrupt handler fires and frees up space in
the TX ring in between checking for sufficient TX ring space and
stopping the TX queue in axienet_start_xmit. If this happens, the
queue wake from the interrupt handler will occur before the queue is
stopped, causing a lost wakeup and the adapter's transmit hanging.

To avoid this, after stopping the queue, check again whether there is
sufficient space in the TX ring. If so, wake up the queue again.

Signed-off-by: Robert Hancock <hancock@sedsystems.ca>
Signed-off-by: David S. Miller <davem@davemloft.net>
2019-06-06 16:24:29 -07:00
..
Kconfig net: axienet: add X86 and ARM as supported platforms 2019-06-06 16:24:29 -07:00
ll_temac_main.c net: ll_temac: Fix compile error 2019-05-23 22:27:52 -07:00
ll_temac_mdio.c net: ll_temac: Prepare indirect register access for multicast support 2019-05-23 09:33:57 -07:00
ll_temac.h net: ll_temac: Prepare indirect register access for multicast support 2019-05-23 09:33:57 -07:00
Makefile License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
xilinx_axienet_main.c net: axienet: Fix race condition causing TX hang 2019-06-06 16:24:29 -07:00
xilinx_axienet_mdio.c net: axienet: Re-initialize MDIO registers properly after reset 2019-06-06 16:24:29 -07:00
xilinx_axienet.h net: axienet: Add optional support for Ethernet core interrupt 2019-06-06 16:24:29 -07:00
xilinx_emaclite.c 2/2] net: xilinx_emaclite: use readx_poll_timeout() in mdio wait function 2019-05-20 20:00:46 -04:00