Patch "ice: Fix SRIOV LAG disable on non-compliant aggregate" has been added to the 6.6-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: Fix SRIOV LAG disable on non-compliant aggregate

to the 6.6-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-fix-sriov-lag-disable-on-non-compliant-aggregate.patch
and it can be found in the queue-6.6 subdirectory.

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



commit 8574d4ad2a30d2bc7c5f24dd2314db39319bca73
Author: Dave Ertman <david.m.ertman@xxxxxxxxx>
Date:   Tue Oct 10 10:32:15 2023 -0700

    ice: Fix SRIOV LAG disable on non-compliant aggregate
    
    [ Upstream commit 3e39da4fa16c9c09207d98b8a86a6f6436b531c9 ]
    
    If an attribute of an aggregate interface disqualifies it from supporting
    SRIOV, the driver will unwind the SRIOV support.  Currently the driver is
    clearing the feature bit for all interfaces in the aggregate, but this is
    not allowing the other interfaces to unwind successfully on driver unload.
    
    Only clear the feature bit for the interface that is currently unwinding.
    
    Fixes: bf65da2eb279 ("ice: enforce interface eligibility and add messaging for SRIOV LAG")
    Signed-off-by: Dave Ertman <david.m.ertman@xxxxxxxxx>
    Reviewed-by: Wojciech Drewek <wojciech.drewek@xxxxxxxxx>
    Reviewed-by: Simon Horman <horms@xxxxxxxxxx>
    Tested-by: Sujai Buvaneswaran <sujai.buvaneswaran@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_lag.c b/drivers/net/ethernet/intel/ice/ice_lag.c
index 7b1256992dcf6..a8da5f8374451 100644
--- a/drivers/net/ethernet/intel/ice/ice_lag.c
+++ b/drivers/net/ethernet/intel/ice/ice_lag.c
@@ -1529,18 +1529,12 @@ static void ice_lag_chk_disabled_bond(struct ice_lag *lag, void *ptr)
  */
 static void ice_lag_disable_sriov_bond(struct ice_lag *lag)
 {
-	struct ice_lag_netdev_list *entry;
 	struct ice_netdev_priv *np;
-	struct net_device *netdev;
 	struct ice_pf *pf;
 
-	list_for_each_entry(entry, lag->netdev_head, node) {
-		netdev = entry->netdev;
-		np = netdev_priv(netdev);
-		pf = np->vsi->back;
-
-		ice_clear_feature_support(pf, ICE_F_SRIOV_LAG);
-	}
+	np = netdev_priv(lag->netdev);
+	pf = np->vsi->back;
+	ice_clear_feature_support(pf, ICE_F_SRIOV_LAG);
 }
 
 /**



[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