Skip to content

Commit 6f9485a

Browse files
author
Saeed Mahameed
committed
net/mlx5e: Fail safe tc setup
Use the new fail-safe channels switch mechanism to set up new tc parameters. Signed-off-by: Saeed Mahameed <[email protected]> Reviewed-by: Tariq Toukan <[email protected]>
1 parent be7e87f commit 6f9485a

File tree

1 file changed

+12
-8
lines changed
  • drivers/net/ethernet/mellanox/mlx5/core

1 file changed

+12
-8
lines changed

drivers/net/ethernet/mellanox/mlx5/core/en_main.c

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2910,25 +2910,29 @@ int mlx5e_modify_channels_vsd(struct mlx5e_channels *chs, bool vsd)
29102910
static int mlx5e_setup_tc(struct net_device *netdev, u8 tc)
29112911
{
29122912
struct mlx5e_priv *priv = netdev_priv(netdev);
2913-
bool was_opened;
2913+
struct mlx5e_channels new_channels = {};
29142914
int err = 0;
29152915

29162916
if (tc && tc != MLX5E_MAX_NUM_TC)
29172917
return -EINVAL;
29182918

29192919
mutex_lock(&priv->state_lock);
29202920

2921-
was_opened = test_bit(MLX5E_STATE_OPENED, &priv->state);
2922-
if (was_opened)
2923-
mlx5e_close_locked(priv->netdev);
2921+
new_channels.params = priv->channels.params;
2922+
new_channels.params.num_tc = tc ? tc : 1;
29242923

2925-
priv->channels.params.num_tc = tc ? tc : 1;
2924+
if (test_bit(MLX5E_STATE_OPENED, &priv->state)) {
2925+
priv->channels.params = new_channels.params;
2926+
goto out;
2927+
}
29262928

2927-
if (was_opened)
2928-
err = mlx5e_open_locked(priv->netdev);
2929+
err = mlx5e_open_channels(priv, &new_channels);
2930+
if (err)
2931+
goto out;
29292932

2933+
mlx5e_switch_priv_channels(priv, &new_channels);
2934+
out:
29302935
mutex_unlock(&priv->state_lock);
2931-
29322936
return err;
29332937
}
29342938

0 commit comments

Comments
 (0)