Patch "ice: don't busy wait for Rx queue disable in ice_qp_dis()" has been added to the 6.1-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: don't busy wait for Rx queue disable in ice_qp_dis()

to the 6.1-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-don-t-busy-wait-for-rx-queue-disable-in-ice_qp_d.patch
and it can be found in the queue-6.1 subdirectory.

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



commit cadcf6459a2e22627f94581d32fe238187adaee4
Author: Maciej Fijalkowski <maciej.fijalkowski@xxxxxxxxx>
Date:   Fri Jul 26 20:17:10 2024 +0200

    ice: don't busy wait for Rx queue disable in ice_qp_dis()
    
    [ Upstream commit 1ff72a2f67791cd4ddad19ed830445f57b30e992 ]
    
    When ice driver is spammed with multiple xdpsock instances and flow
    control is enabled, there are cases when Rx queue gets stuck and unable
    to reflect the disable state in QRX_CTRL register. Similar issue has
    previously been addressed in commit 13a6233b033f ("ice: Add support to
    enable/disable all Rx queues before waiting").
    
    To workaround this, let us simply not wait for a disabled state as later
    patch will make sure that regardless of the encountered error in the
    process of disabling a queue pair, the Rx queue will be enabled.
    
    Fixes: 2d4238f55697 ("ice: Add support for AF_XDP")
    Reviewed-by: Shannon Nelson <shannon.nelson@xxxxxxx>
    Tested-by: Chandan Kumar Rout <chandanx.rout@xxxxxxxxx> (A Contingent Worker at Intel)
    Signed-off-by: Maciej Fijalkowski <maciej.fijalkowski@xxxxxxxxx>
    Signed-off-by: Tony Nguyen <anthony.l.nguyen@xxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/drivers/net/ethernet/intel/ice/ice_xsk.c b/drivers/net/ethernet/intel/ice/ice_xsk.c
index 61e4730bba59e..ebc017dd245f1 100644
--- a/drivers/net/ethernet/intel/ice/ice_xsk.c
+++ b/drivers/net/ethernet/intel/ice/ice_xsk.c
@@ -191,10 +191,8 @@ static int ice_qp_dis(struct ice_vsi *vsi, u16 q_idx)
 		if (err)
 			return err;
 	}
-	err = ice_vsi_ctrl_one_rx_ring(vsi, false, q_idx, true);
-	if (err)
-		return err;
 
+	ice_vsi_ctrl_one_rx_ring(vsi, false, q_idx, false);
 	ice_qp_clean_rings(vsi, q_idx);
 	ice_qp_reset_stats(vsi, q_idx);
 




[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