linux/drivers/net/ethernet/intel/ixgbe
Ilya Maximets bf280c0387 ixgbe: fix double clean of Tx descriptors with xdp
Tx code doesn't clear the descriptors' status after cleaning.
So, if the budget is larger than number of used elems in a ring, some
descriptors will be accounted twice and xsk_umem_complete_tx will move
prod_tail far beyond the prod_head breaking the completion queue ring.

Fix that by limiting the number of descriptors to clean by the number
of used descriptors in the Tx ring.

'ixgbe_clean_xdp_tx_irq()' function refactored to look more like
'ixgbe_xsk_clean_tx_ring()' since we're allowed to directly use
'next_to_clean' and 'next_to_use' indexes.

CC: stable@vger.kernel.org
Fixes: 8221c5eba8 ("ixgbe: add AF_XDP zero-copy Tx support")
Signed-off-by: Ilya Maximets <i.maximets@samsung.com>
Tested-by: William Tu <u9012063@gmail.com>
Tested-by: Eelco Chaudron <echaudro@redhat.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
2019-09-11 09:42:18 -07:00
..
ixgbe.h ixgbe: Use LLDP ethertype define ETH_P_LLDP 2019-06-05 13:04:29 -07:00
ixgbe_82598.c
ixgbe_82599.c
ixgbe_common.c
ixgbe_common.h
ixgbe_dcb.c
ixgbe_dcb.h
ixgbe_dcb_82598.c
ixgbe_dcb_82598.h
ixgbe_dcb_82599.c
ixgbe_dcb_82599.h
ixgbe_dcb_nl.c
ixgbe_debugfs.c
ixgbe_ethtool.c ixgbe: Check DDM existence in transceiver before access 2019-06-26 09:18:54 -07:00
ixgbe_fcoe.c
ixgbe_fcoe.h
ixgbe_ipsec.c ixgbe: Avoid NULL pointer dereference with VF on non-IPsec hw 2019-06-28 15:58:53 -07:00
ixgbe_ipsec.h
ixgbe_lib.c
ixgbe_main.c ixgbe: Prevent u8 wrapping of ITR value to something less than 10us 2019-09-11 09:39:35 -07:00
ixgbe_mbx.c
ixgbe_mbx.h
ixgbe_model.h
ixgbe_phy.c ixgbe: fix mdio bus registration 2019-03-26 16:14:24 -07:00
ixgbe_phy.h ixgbe: Check DDM existence in transceiver before access 2019-06-26 09:18:54 -07:00
ixgbe_ptp.c ixgbe: fix potential u32 overflow on shift 2019-06-28 15:59:38 -07:00
ixgbe_sriov.c ixgbe: Use LLDP ethertype define ETH_P_LLDP 2019-06-05 13:04:29 -07:00
ixgbe_sriov.h
ixgbe_sysfs.c
ixgbe_txrx_common.h
ixgbe_type.h ixgbe: implement support for SDP/PPS output on X550 hardware 2019-06-05 13:04:30 -07:00
ixgbe_x540.c
ixgbe_x540.h
ixgbe_x550.c
ixgbe_xsk.c ixgbe: fix double clean of Tx descriptors with xdp 2019-09-11 09:42:18 -07:00
Makefile