Patch "ice: remove redundant xdp_rxq_info registration" has been added to the 6.7-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    ice: remove redundant xdp_rxq_info registration

to the 6.7-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:
     ice-remove-redundant-xdp_rxq_info-registration.patch
and it can be found in the queue-6.7 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit 6567d90f1860790c7a73d15c47a2d8cfa8de7aae
Author: Maciej Fijalkowski <maciej.fijalkowski@xxxxxxxxx>
Date:   Wed Jan 24 20:15:57 2024 +0100

    ice: remove redundant xdp_rxq_info registration
    
    [ Upstream commit 2ee788c06493d02ee85855414cca39825e768aaf ]
    
    xdp_rxq_info struct can be registered by drivers via two functions -
    xdp_rxq_info_reg() and __xdp_rxq_info_reg(). The latter one allows
    drivers that support XDP multi-buffer to set up xdp_rxq_info::frag_size
    which in turn will make it possible to grow the packet via
    bpf_xdp_adjust_tail() BPF helper.
    
    Currently, ice registers xdp_rxq_info in two spots:
    1) ice_setup_rx_ring() // via xdp_rxq_info_reg(), BUG
    2) ice_vsi_cfg_rxq()   // via __xdp_rxq_info_reg(), OK
    
    Cited commit under fixes tag took care of setting up frag_size and
    updated registration scheme in 2) but it did not help as
    1) is called before 2) and as shown above it uses old registration
    function. This means that 2) sees that xdp_rxq_info is already
    registered and never calls __xdp_rxq_info_reg() which leaves us with
    xdp_rxq_info::frag_size being set to 0.
    
    To fix this misbehavior, simply remove xdp_rxq_info_reg() call from
    ice_setup_rx_ring().
    
    Fixes: 2fba7dc5157b ("ice: Add support for XDP multi-buffer on Rx side")
    Acked-by: Magnus Karlsson <magnus.karlsson@xxxxxxxxx>
    Signed-off-by: Maciej Fijalkowski <maciej.fijalkowski@xxxxxxxxx>
    Link: https://lore.kernel.org/r/20240124191602.566724-7-maciej.fijalkowski@xxxxxxxxx
    Signed-off-by: Alexei Starovoitov <ast@xxxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/drivers/net/ethernet/intel/ice/ice_txrx.c b/drivers/net/ethernet/intel/ice/ice_txrx.c
index 6878448ba112..9170a3e8f088 100644
--- a/drivers/net/ethernet/intel/ice/ice_txrx.c
+++ b/drivers/net/ethernet/intel/ice/ice_txrx.c
@@ -513,11 +513,6 @@ int ice_setup_rx_ring(struct ice_rx_ring *rx_ring)
 	if (ice_is_xdp_ena_vsi(rx_ring->vsi))
 		WRITE_ONCE(rx_ring->xdp_prog, rx_ring->vsi->xdp_prog);
 
-	if (rx_ring->vsi->type == ICE_VSI_PF &&
-	    !xdp_rxq_info_is_reg(&rx_ring->xdp_rxq))
-		if (xdp_rxq_info_reg(&rx_ring->xdp_rxq, rx_ring->netdev,
-				     rx_ring->q_index, rx_ring->q_vector->napi.napi_id))
-			goto err;
 	return 0;
 
 err:




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux