net/mlx5e: Don't clear the whole vf config when switching modes
There is no need to reset all vf config (except link state) between
legacy and switchdev modes changes.
Also, set link state to AUTO, when legacy enabled.
Fixes: 3b83b6c2e0
("net/mlx5e: Clear VF config when switching modes")
Signed-off-by: Dmytro Linkin <dmitrolin@mellanox.com>
Reviewed-by: Roi Dayan <roid@mellanox.com>
Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>
This commit is contained in:
parent
52d214976d
commit
383de10815
@ -459,12 +459,16 @@ static void esw_destroy_legacy_table(struct mlx5_eswitch *esw)
|
||||
|
||||
static int esw_legacy_enable(struct mlx5_eswitch *esw)
|
||||
{
|
||||
int ret;
|
||||
struct mlx5_vport *vport;
|
||||
int ret, i;
|
||||
|
||||
ret = esw_create_legacy_table(esw);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
mlx5_esw_for_each_vf_vport(esw, i, vport, esw->esw_funcs.num_vfs)
|
||||
vport->info.link_state = MLX5_VPORT_ADMIN_STATE_AUTO;
|
||||
|
||||
ret = mlx5_eswitch_enable_pf_vf_vports(esw, MLX5_LEGACY_SRIOV_VPORT_EVENTS);
|
||||
if (ret)
|
||||
esw_destroy_legacy_table(esw);
|
||||
|
@ -1172,7 +1172,7 @@ static int esw_offloads_start(struct mlx5_eswitch *esw,
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
mlx5_eswitch_disable(esw, true);
|
||||
mlx5_eswitch_disable(esw, false);
|
||||
mlx5_eswitch_update_num_of_vfs(esw, esw->dev->priv.sriov.num_vfs);
|
||||
err = mlx5_eswitch_enable(esw, MLX5_ESWITCH_OFFLOADS);
|
||||
if (err) {
|
||||
@ -2065,7 +2065,7 @@ static int esw_offloads_stop(struct mlx5_eswitch *esw,
|
||||
{
|
||||
int err, err1;
|
||||
|
||||
mlx5_eswitch_disable(esw, true);
|
||||
mlx5_eswitch_disable(esw, false);
|
||||
err = mlx5_eswitch_enable(esw, MLX5_ESWITCH_LEGACY);
|
||||
if (err) {
|
||||
NL_SET_ERR_MSG_MOD(extack, "Failed setting eswitch to legacy");
|
||||
|
Loading…
Reference in New Issue
Block a user