Patch "ice: Fix VLAN pruning in switchdev mode" has been added to the 6.12-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 VLAN pruning in switchdev mode

to the 6.12-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-vlan-pruning-in-switchdev-mode.patch
and it can be found in the queue-6.12 subdirectory.

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



commit a944d5a70ad2c022843bcc1a19dcc6fe15bc04df
Author: Marcin Szycik <marcin.szycik@xxxxxxxxxxxxxxx>
Date:   Mon Nov 4 19:49:09 2024 +0100

    ice: Fix VLAN pruning in switchdev mode
    
    [ Upstream commit 761e0be2888a931465e0d7bbeecce797f9c311a3 ]
    
    In switchdev mode the uplink VSI should receive all unmatched packets,
    including VLANs. Therefore, VLAN pruning should be disabled if uplink is
    in switchdev mode. It is already being done in ice_eswitch_setup_env(),
    however the addition of ice_up() in commit 44ba608db509 ("ice: do
    switchdev slow-path Rx using PF VSI") caused VLAN pruning to be
    re-enabled after disabling it.
    
    Add a check to ice_set_vlan_filtering_features() to ensure VLAN
    filtering will not be enabled if uplink is in switchdev mode. Note that
    ice_is_eswitch_mode_switchdev() is being used instead of
    ice_is_switchdev_running(), as the latter would only return true after
    the whole switchdev setup completes.
    
    Fixes: 44ba608db509 ("ice: do switchdev slow-path Rx using PF VSI")
    Reviewed-by: Michal Swiatkowski <michal.swiatkowski@xxxxxxxxxxxxxxx>
    Signed-off-by: Marcin Szycik <marcin.szycik@xxxxxxxxxxxxxxx>
    Tested-by: Priya Singh <priyax.singh@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_main.c b/drivers/net/ethernet/intel/ice/ice_main.c
index b1e7727b8677f..8f2e758c39427 100644
--- a/drivers/net/ethernet/intel/ice/ice_main.c
+++ b/drivers/net/ethernet/intel/ice/ice_main.c
@@ -6361,10 +6361,12 @@ ice_set_vlan_filtering_features(struct ice_vsi *vsi, netdev_features_t features)
 	int err = 0;
 
 	/* support Single VLAN Mode (SVM) and Double VLAN Mode (DVM) by checking
-	 * if either bit is set
+	 * if either bit is set. In switchdev mode Rx filtering should never be
+	 * enabled.
 	 */
-	if (features &
-	    (NETIF_F_HW_VLAN_CTAG_FILTER | NETIF_F_HW_VLAN_STAG_FILTER))
+	if ((features &
+	     (NETIF_F_HW_VLAN_CTAG_FILTER | NETIF_F_HW_VLAN_STAG_FILTER)) &&
+	     !ice_is_eswitch_mode_switchdev(vsi->back))
 		err = vlan_ops->ena_rx_filtering(vsi);
 	else
 		err = vlan_ops->dis_rx_filtering(vsi);




[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