|
|
@@ -2548,6 +2548,12 @@ static void mlx5e_build_channels_tx_maps(struct mlx5e_priv *priv)
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+static bool mlx5e_is_eswitch_vport_mngr(struct mlx5_core_dev *mdev)
|
|
|
+{
|
|
|
+ return (MLX5_CAP_GEN(mdev, vport_group_manager) &&
|
|
|
+ MLX5_CAP_GEN(mdev, port_type) == MLX5_CAP_PORT_TYPE_ETH);
|
|
|
+}
|
|
|
+
|
|
|
void mlx5e_activate_priv_channels(struct mlx5e_priv *priv)
|
|
|
{
|
|
|
int num_txqs = priv->channels.num * priv->channels.params.num_tc;
|
|
|
@@ -2561,7 +2567,7 @@ void mlx5e_activate_priv_channels(struct mlx5e_priv *priv)
|
|
|
mlx5e_activate_channels(&priv->channels);
|
|
|
netif_tx_start_all_queues(priv->netdev);
|
|
|
|
|
|
- if (MLX5_CAP_GEN(priv->mdev, vport_group_manager))
|
|
|
+ if (mlx5e_is_eswitch_vport_mngr(priv->mdev))
|
|
|
mlx5e_add_sqs_fwd_rules(priv);
|
|
|
|
|
|
mlx5e_wait_channels_min_rx_wqes(&priv->channels);
|
|
|
@@ -2572,7 +2578,7 @@ void mlx5e_deactivate_priv_channels(struct mlx5e_priv *priv)
|
|
|
{
|
|
|
mlx5e_redirect_rqts_to_drop(priv);
|
|
|
|
|
|
- if (MLX5_CAP_GEN(priv->mdev, vport_group_manager))
|
|
|
+ if (mlx5e_is_eswitch_vport_mngr(priv->mdev))
|
|
|
mlx5e_remove_sqs_fwd_rules(priv);
|
|
|
|
|
|
/* FIXME: This is a W/A only for tx timeout watch dog false alarm when
|