linux/drivers/net/ethernet/xilinx
Suraj Gupta d1978d03e8 net: xilinx: axienet: Fix BQL accounting for multi-BD TX packets
When a TX packet spans multiple buffer descriptors (scatter-gather),
axienet_free_tx_chain sums the per-BD actual length from descriptor
status into a caller-provided accumulator. That sum is reset on each
NAPI poll. If the BDs for a single packet complete across different
polls, the earlier bytes are lost and never credited to BQL. This
causes BQL to think bytes are permanently in-flight, eventually
stalling the TX queue.

The SKB pointer is stored only on the last BD of a packet. When that
BD completes, use skb->len for the byte count instead of summing
per-BD status lengths. This matches netdev_sent_queue(), which debits
skb->len, and naturally survives across polls because no partial
packet contributes to the accumulator.

Fixes: c900e49d58 ("net: xilinx: axienet: Implement BQL")
Signed-off-by: Suraj Gupta <suraj.gupta2@amd.com>
Reviewed-by: Sean Anderson <sean.anderson@linux.dev>
Link: https://patch.msgid.link/20260327073238.134948-3-suraj.gupta2@amd.com
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
2026-03-31 12:09:12 +02:00
..
Kconfig net: xilinx: axienet: Enable adaptive IRQ coalescing with DIM 2025-02-10 18:53:40 -08:00
ll_temac_main.c net: ll_temac: Fix incorrect PHY node reference in debug message 2025-07-11 17:02:35 -07:00
ll_temac_mdio.c
ll_temac.h
Makefile
xilinx_axienet_main.c net: xilinx: axienet: Fix BQL accounting for multi-BD TX packets 2026-03-31 12:09:12 +02:00
xilinx_axienet_mdio.c net: axienet: Fix kernel doc warnings 2024-03-29 12:41:22 -07:00
xilinx_axienet.h net: xilinx: axienet: Correct BD length masks to match AXIDMA IP spec 2026-03-31 12:09:12 +02:00
xilinx_emaclite.c net: emaclite: Fix missing pointer increment in aligned_read() 2025-07-11 16:37:06 -07:00