Message ID | 20250211174322.603652-2-marcin.szycik@linux.intel.com (mailing list archive) |
---|---|
State | Awaiting Upstream |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | [iwl-net,1/2] ice: Fix deinitializing VF in error path | expand |
On Tue, Feb 11, 2025 at 06:43:22PM +0100, Marcin Szycik wrote: > As part of switchdev environment setup, uplink VSI is configured as > default for both Tx and Rx. Default Rx VSI is also used by promiscuous > mode. If promisc mode is enabled and an attempt to enter switchdev mode > is made, the setup will fail because Rx VSI is already configured as > default (rule exists). > > Reproducer: > devlink dev eswitch set $PF1_PCI mode switchdev > ip l s $PF1 up > ip l s $PF1 promisc on > echo 1 > /sys/class/net/$PF1/device/sriov_numvfs > > In switchdev setup, use ice_set_dflt_vsi() instead of plain > ice_cfg_dflt_vsi(), which avoids repeating setting default VSI for Rx if > it's already configured. > > Fixes: 50d62022f455 ("ice: default Tx rule instead of to queue") > Reported-by: Sujai Buvaneswaran <sujai.buvaneswaran@intel.com> > Closes: https://lore.kernel.org/intel-wired-lan/PH0PR11MB50138B635F2E5CEB7075325D961F2@PH0PR11MB5013.namprd11.prod.outlook.com > Reviewed-by: Martyna Szapar-Mudlaw <martyna.szapar-mudlaw@linux.intel.com> > Signed-off-by: Marcin Szycik <marcin.szycik@linux.intel.com> Reviewed-by: Simon Horman <horms@kernel.org>
diff --git a/drivers/net/ethernet/intel/ice/ice_eswitch.c b/drivers/net/ethernet/intel/ice/ice_eswitch.c index b44a375e6365..ed21d7f55ac1 100644 --- a/drivers/net/ethernet/intel/ice/ice_eswitch.c +++ b/drivers/net/ethernet/intel/ice/ice_eswitch.c @@ -38,8 +38,7 @@ static int ice_eswitch_setup_env(struct ice_pf *pf) if (ice_vsi_add_vlan_zero(uplink_vsi)) goto err_vlan_zero; - if (ice_cfg_dflt_vsi(uplink_vsi->port_info, uplink_vsi->idx, true, - ICE_FLTR_RX)) + if (ice_set_dflt_vsi(uplink_vsi)) goto err_def_rx; if (ice_cfg_dflt_vsi(uplink_vsi->port_info, uplink_vsi->idx, true,