net/mlx5: fix unnecessary checking for RSS action
authorJiawei Wang <jiaweiw@nvidia.com>
Thu, 14 Jan 2021 07:24:46 +0000 (09:24 +0200)
committerFerruh Yigit <ferruh.yigit@intel.com>
Tue, 19 Jan 2021 02:30:32 +0000 (03:30 +0100)
RSS action is valid only in NIC-RX domain, this fix bypass
the function that getting RSS action from the flow action list
under no NIC-RX domain.

Fixes: e745f900072e ("net/mlx5: optimize flow RSS struct")
Cc: stable@dpdk.org
Signed-off-by: Jiawei Wang <jiaweiw@nvidia.com>
Acked-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
drivers/net/mlx5/mlx5_flow.c

index 3c4ef6d..e656ad6 100644 (file)
@@ -5416,7 +5416,7 @@ flow_list_create(struct rte_eth_dev *dev, uint32_t *list,
        struct mlx5_priv *priv = dev->data->dev_private;
        struct rte_flow *flow = NULL;
        struct mlx5_flow *dev_flow;
-       const struct rte_flow_action_rss *rss;
+       const struct rte_flow_action_rss *rss = NULL;
        struct mlx5_translated_shared_action
                shared_actions[MLX5_MAX_SHARED_ACTIONS];
        int shared_actions_n = MLX5_MAX_SHARED_ACTIONS;
@@ -5494,7 +5494,9 @@ flow_list_create(struct rte_eth_dev *dev, uint32_t *list,
        MLX5_ASSERT(flow->drv_type > MLX5_FLOW_TYPE_MIN &&
                    flow->drv_type < MLX5_FLOW_TYPE_MAX);
        memset(rss_desc, 0, offsetof(struct mlx5_flow_rss_desc, queue));
-       rss = flow_get_rss_action(p_actions_rx);
+       /* RSS Action only works on NIC RX domain */
+       if (attr->ingress && !attr->transfer)
+               rss = flow_get_rss_action(p_actions_rx);
        if (rss) {
                if (flow_rss_workspace_adjust(wks, rss_desc, rss->queue_num))
                        return 0;