]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
ice: Prohibit rx mode change in switchdev mode
authorWojciech Drewek <wojciech.drewek@intel.com>
Wed, 12 Jul 2023 11:03:27 +0000 (13:03 +0200)
committerTony Nguyen <anthony.l.nguyen@intel.com>
Mon, 24 Jul 2023 15:52:34 +0000 (08:52 -0700)
Don't allow to change promisc mode in switchdev mode.
When switchdev is configured, PF netdev is set to be a
default VSI. This is needed for the slow-path to work correctly.
All the unmatched packets will be directed to PF netdev.

It is possible that this setting might be overwritten by
ndo_set_rx_mode. Prevent this by checking if switchdev is
enabled in ice_set_rx_mode.

Reviewed-by: Paul Menzel <pmenzel@molgen.mpg.de>
Reviewed-by: Simon Horman <simon.horman@corigine.com>
Signed-off-by: Wojciech Drewek <wojciech.drewek@intel.com>
Tested-by: Sujai Buvaneswaran <sujai.buvaneswaran@intel.com>
Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
drivers/net/ethernet/intel/ice/ice_main.c

index 4f70f5553c803e6068331303cfbb5c465a586af7..d1f2077676e46f260ff3261082eaae797226615a 100644 (file)
@@ -5704,7 +5704,7 @@ static void ice_set_rx_mode(struct net_device *netdev)
        struct ice_netdev_priv *np = netdev_priv(netdev);
        struct ice_vsi *vsi = np->vsi;
 
-       if (!vsi)
+       if (!vsi || ice_is_switchdev_running(vsi->back))
                return;
 
        /* Set the flags to synchronize filters