Home
last modified time | relevance | path

Searched hist:bb193e3db8b86a63f26889c99e14fd30c9ebd72a (Results 1 – 1 of 1) sorted by relevance

/openbmc/linux/drivers/net/ethernet/xilinx/
H A Dxilinx_axienet_main.cdiff bb193e3db8b86a63f26889c99e14fd30c9ebd72a Tue Jan 18 15:41:31 CST 2022 Robert Hancock <robert.hancock@calian.com> net: axienet: fix for TX busy handling

Network driver documentation indicates we should be avoiding returning
NETDEV_TX_BUSY from ndo_start_xmit in normal cases, since it requires
the packets to be requeued. Instead the queue should be stopped after
a packet is added to the TX ring when there may not be enough room for an
additional one. Also, when TX ring entries are completed, we should only
wake the queue if we know there is room for another full maximally
fragmented packet.

Print a warning if there is insufficient space at the start of start_xmit,
since this should no longer happen.

Combined with increasing the default TX ring size (in a subsequent
patch), this appears to recover the TX performance lost by previous changes
to actually manage the TX ring state properly.

Fixes: 8a3b7a252dca9 ("drivers/net/ethernet/xilinx: added Xilinx AXI Ethernet driver")
Signed-off-by: Robert Hancock <robert.hancock@calian.com>
Signed-off-by: David S. Miller <davem@davemloft.net>