The previous commit extended the send to kernel support on FDB table.
This action creation failed at MLX5 core kernel module, due to the
VF/SF ports do NOT belong to E-Switch mode.
The failure caused the kernel stuck with the older MLX5 core
kernel version.

This patch adds the checking to avoid creating action at the VF/SF ports
on the FDB table.

Fixes: b2cd39187cd4 ("net/mlx5: extend send to kernel action support")

Signed-off-by: Jiawei Wang <jiaw...@nvidia.com>
Acked-by: Suanming Mou <suanmi...@nvidia.com>
---
 drivers/net/mlx5/mlx5_flow_hw.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/drivers/net/mlx5/mlx5_flow_hw.c b/drivers/net/mlx5/mlx5_flow_hw.c
index 6fcf654e4a..89b6f546ae 100644
--- a/drivers/net/mlx5/mlx5_flow_hw.c
+++ b/drivers/net/mlx5/mlx5_flow_hw.c
@@ -5957,8 +5957,11 @@ flow_hw_create_send_to_kernel_actions(struct mlx5_priv 
*priv __rte_unused)
 #ifdef HAVE_MLX5DV_DR_ACTION_CREATE_DEST_ROOT_TABLE
        int action_flag;
        int i;
+       bool is_vf_sf_dev = priv->sh->dev_cap.vf || priv->sh->dev_cap.sf;
 
        for (i = MLX5DR_TABLE_TYPE_NIC_RX; i < MLX5DR_TABLE_TYPE_MAX; i++) {
+               if (is_vf_sf_dev && MLX5DR_TABLE_TYPE_FDB == i)
+                       continue;
                action_flag = mlx5_hw_act_flag[1][i];
                priv->hw_send_to_kernel[i] =
                                mlx5dr_action_create_dest_root(priv->dr_ctx,
-- 
2.18.1

Reply via email to