net/mlx5: E-switch, Destroy TSAR after reload interface
authorParav Pandit <parav@mellanox.com>
Sat, 27 Jun 2020 10:11:56 +0000 (13:11 +0300)
committerSaeed Mahameed <saeedm@mellanox.com>
Tue, 28 Jul 2020 19:55:30 +0000 (12:55 -0700)
When eswitch offloads is enabled, TSAR is created before reloading
the interfaces.
However when eswitch offloads mode is disabled, TSAR is disabled before
reloading the interfaces.

To keep the eswitch enable/disable sequence as mirror, destroy TSAR
after reloading the interfaces.

Fixes: 1bd27b11c1df ("net/mlx5: Introduce E-switch QoS management")
Signed-off-by: Parav Pandit <parav@mellanox.com>
Reviewed-by: Roi Dayan <roid@mellanox.com>
Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>
drivers/net/ethernet/mellanox/mlx5/core/eswitch.c

index 9701f0f..d937662 100644 (file)
@@ -1653,8 +1653,6 @@ void mlx5_eswitch_disable_locked(struct mlx5_eswitch *esw, bool clear_vf)
        else if (esw->mode == MLX5_ESWITCH_OFFLOADS)
                esw_offloads_disable(esw);
 
-       esw_destroy_tsar(esw);
-
        old_mode = esw->mode;
        esw->mode = MLX5_ESWITCH_NONE;
 
@@ -1664,6 +1662,8 @@ void mlx5_eswitch_disable_locked(struct mlx5_eswitch *esw, bool clear_vf)
                mlx5_reload_interface(esw->dev, MLX5_INTERFACE_PROTOCOL_IB);
                mlx5_reload_interface(esw->dev, MLX5_INTERFACE_PROTOCOL_ETH);
        }
+       esw_destroy_tsar(esw);
+
        if (clear_vf)
                mlx5_eswitch_clear_vf_vports_info(esw);
 }