net/mlx5: E-switch, Destroy legacy fdb table when needed
The cited commit removes eswitch mode none. But when disabling sriov in legacy mode or changing from switchdev to legacy mode without sriov enabled, the legacy fdb table is not destroyed. It is not the right behavior. Destroy legacy fdb table in above two caes. Fixes: f019679ea5f2 ("net/mlx5: E-switch, Remove dependency between sriov and eswitch mode") Signed-off-by: Chris Mi <cmi@nvidia.com> Reviewed-by: Roi Dayan <roid@nvidia.com> Reviewed-by: Eli Cohen <elic@nvidia.com> Reviewed-by: Mark Bloch <mbloch@nvidia.com> Reviewed-by: Vlad Buslov <vladbu@nvidia.com> Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
This commit is contained in:
parent
52f7cf70eb
commit
2318b8bb94
@ -1362,6 +1362,9 @@ void mlx5_eswitch_disable_sriov(struct mlx5_eswitch *esw, bool clear_vf)
|
||||
|
||||
devl_rate_nodes_destroy(devlink);
|
||||
}
|
||||
/* Destroy legacy fdb when disabling sriov in legacy mode. */
|
||||
if (esw->mode == MLX5_ESWITCH_LEGACY)
|
||||
mlx5_eswitch_disable_locked(esw);
|
||||
|
||||
esw->esw_funcs.num_vfs = 0;
|
||||
|
||||
|
@ -3387,6 +3387,13 @@ static int esw_offloads_stop(struct mlx5_eswitch *esw,
|
||||
int err;
|
||||
|
||||
esw->mode = MLX5_ESWITCH_LEGACY;
|
||||
|
||||
/* If changing from switchdev to legacy mode without sriov enabled,
|
||||
* no need to create legacy fdb.
|
||||
*/
|
||||
if (!mlx5_sriov_is_enabled(esw->dev))
|
||||
return 0;
|
||||
|
||||
err = mlx5_eswitch_enable_locked(esw, MLX5_ESWITCH_IGNORE_NUM_VFS);
|
||||
if (err)
|
||||
NL_SET_ERR_MSG_MOD(extack, "Failed setting eswitch to legacy");
|
||||
|
Loading…
x
Reference in New Issue
Block a user