Commit f4db7b31 authored by Maciej Fijalkowski's avatar Maciej Fijalkowski Committed by Daniel Borkmann
Browse files

ice: Remove next_{dd,rs} fields from ice_tx_ring



Now that both ZC and standard XDP data paths stopped using Tx logic
based on next_dd and next_rs fields, we can safely remove these fields
and shrink Tx ring structure.

Signed-off-by: default avatarMaciej Fijalkowski <maciej.fijalkowski@intel.com>
Signed-off-by: default avatarDaniel Borkmann <daniel@iogearbox.net>
Reviewed-by: default avatarAlexander Lobakin <alexandr.lobakin@intel.com>
Link: https://lore.kernel.org/bpf/20230131204506.219292-13-maciej.fijalkowski@intel.com
parent 3246a107
Loading
Loading
Loading
Loading
+0 −2
Original line number Diff line number Diff line
@@ -3046,8 +3046,6 @@ ice_set_ringparam(struct net_device *netdev, struct ethtool_ringparam *ring,
		/* clone ring and setup updated count */
		xdp_rings[i] = *vsi->xdp_rings[i];
		xdp_rings[i].count = new_tx_cnt;
		xdp_rings[i].next_dd = ICE_RING_QUARTER(&xdp_rings[i]) - 1;
		xdp_rings[i].next_rs = ICE_RING_QUARTER(&xdp_rings[i]) - 1;
		xdp_rings[i].desc = NULL;
		xdp_rings[i].tx_buf = NULL;
		err = ice_setup_tx_ring(&xdp_rings[i]);
+0 −2
Original line number Diff line number Diff line
@@ -2570,8 +2570,6 @@ static int ice_xdp_alloc_setup_rings(struct ice_vsi *vsi)
		xdp_ring->netdev = NULL;
		xdp_ring->dev = dev;
		xdp_ring->count = vsi->num_tx_desc;
		xdp_ring->next_dd = ICE_RING_QUARTER(xdp_ring) - 1;
		xdp_ring->next_rs = ICE_RING_QUARTER(xdp_ring) - 1;
		WRITE_ONCE(vsi->xdp_rings[i], xdp_ring);
		if (ice_setup_tx_ring(xdp_ring))
			goto free_xdp_rings;
+0 −2
Original line number Diff line number Diff line
@@ -174,8 +174,6 @@ void ice_clean_tx_ring(struct ice_tx_ring *tx_ring)

	tx_ring->next_to_use = 0;
	tx_ring->next_to_clean = 0;
	tx_ring->next_dd = ICE_RING_QUARTER(tx_ring) - 1;
	tx_ring->next_rs = ICE_RING_QUARTER(tx_ring) - 1;

	if (!tx_ring->netdev)
		return;
+0 −2
Original line number Diff line number Diff line
@@ -343,8 +343,6 @@ struct ice_tx_ring {
	struct xsk_buff_pool *xsk_pool;
	u16 next_to_use;
	u16 next_to_clean;
	u16 next_rs;
	u16 next_dd;
	u16 q_handle;			/* Queue handle per TC */
	u16 reg_idx;			/* HW register index of the ring */
	u16 count;			/* Number of descriptors */