ice: Remove next_{dd,rs} fields from ice_tx_ring
authorMaciej Fijalkowski <maciej.fijalkowski@intel.com>
Tue, 31 Jan 2023 20:45:05 +0000 (21:45 +0100)
committerDaniel Borkmann <daniel@iogearbox.net>
Wed, 1 Feb 2023 22:30:27 +0000 (23:30 +0100)
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: Maciej Fijalkowski <maciej.fijalkowski@intel.com>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Reviewed-by: Alexander Lobakin <alexandr.lobakin@intel.com>
Link: https://lore.kernel.org/bpf/20230131204506.219292-13-maciej.fijalkowski@intel.com
drivers/net/ethernet/intel/ice/ice_ethtool.c
drivers/net/ethernet/intel/ice/ice_main.c
drivers/net/ethernet/intel/ice/ice_txrx.c
drivers/net/ethernet/intel/ice/ice_txrx.h

index 3798a89..1adbcb4 100644 (file)
@@ -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]);
index eb6fa52..26a8910 100644 (file)
@@ -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;
index fd73122..3cc63e6 100644 (file)
@@ -174,8 +174,6 @@ tx_skip_free:
 
        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;
index 55f47c5..7903bb6 100644 (file)
@@ -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 */