This is a note to let you know that I've just added the patch titled net: axienet: fix number of TX ring slots for available check to the 5.16-stable tree which can be found at: http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary The filename of the patch is: net-axienet-fix-number-of-tx-ring-slots-for-available-check.patch and it can be found in the queue-5.16 subdirectory. If you, or anyone else, feels it should not be added to the stable tree, please let <stable@xxxxxxxxxxxxxxx> know about it. >From aba57a823d2985a2cc8c74a2535f3a88e68d9424 Mon Sep 17 00:00:00 2001 From: Robert Hancock <robert.hancock@xxxxxxxxxx> Date: Tue, 18 Jan 2022 15:41:30 -0600 Subject: net: axienet: fix number of TX ring slots for available check From: Robert Hancock <robert.hancock@xxxxxxxxxx> commit aba57a823d2985a2cc8c74a2535f3a88e68d9424 upstream. The check for the number of available TX ring slots was off by 1 since a slot is required for the skb header as well as each fragment. This could result in overwriting a TX ring slot that was still in use. Fixes: 8a3b7a252dca9 ("drivers/net/ethernet/xilinx: added Xilinx AXI Ethernet driver") Signed-off-by: Robert Hancock <robert.hancock@xxxxxxxxxx> Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx> Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> --- drivers/net/ethernet/xilinx/xilinx_axienet_main.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) --- a/drivers/net/ethernet/xilinx/xilinx_axienet_main.c +++ b/drivers/net/ethernet/xilinx/xilinx_axienet_main.c @@ -747,7 +747,7 @@ axienet_start_xmit(struct sk_buff *skb, num_frag = skb_shinfo(skb)->nr_frags; cur_p = &lp->tx_bd_v[lp->tx_bd_tail]; - if (axienet_check_tx_bd_space(lp, num_frag)) { + if (axienet_check_tx_bd_space(lp, num_frag + 1)) { if (netif_queue_stopped(ndev)) return NETDEV_TX_BUSY; @@ -757,7 +757,7 @@ axienet_start_xmit(struct sk_buff *skb, smp_mb(); /* Space might have just been freed - check again */ - if (axienet_check_tx_bd_space(lp, num_frag)) + if (axienet_check_tx_bd_space(lp, num_frag + 1)) return NETDEV_TX_BUSY; netif_wake_queue(ndev); Patches currently in stable-queue which might be from robert.hancock@xxxxxxxxxx are queue-5.16/net-axienet-wait-for-phyrstcmplt-after-core-reset.patch queue-5.16/net-axienet-add-missing-memory-barriers.patch queue-5.16/clk-si5341-fix-clock-hw-provider-cleanup.patch queue-5.16/net-axienet-increase-default-tx-ring-size-to-128.patch queue-5.16/net-axienet-fix-tx-ring-slot-available-check.patch queue-5.16/net-axienet-fix-for-tx-busy-handling.patch queue-5.16/net-axienet-limit-minimum-tx-ring-size.patch queue-5.16/net-axienet-reset-core-on-initialization-prior-to-mdio-access.patch queue-5.16/net-axienet-fix-number-of-tx-ring-slots-for-available-check.patch queue-5.16/net-axienet-increase-reset-timeout.patch