net/mlx5: fix hairpin split detection
When creating a flow, the flow is checked if it should be split into
2 flows based on the queue/rss acton.
If the RSS action with given without any queues, it will result in crash
due to the fact that the function checks the queue type.
This commit fixes this issue by checking if the rss action is not empty,
and at least one queue.
Fixes: d85c7b5ea5
("net/mlx5: split hairpin flows")
Signed-off-by: Ori Kam <orika@mellanox.com>
Acked-by: Viacheslav Ovsiienko <viacheslavo@mellanox.com>
This commit is contained in:
parent
c4d314a352
commit
2e715e53de
@ -2814,6 +2814,8 @@ flow_check_hairpin_split(struct rte_eth_dev *dev,
|
||||
switch (actions->type) {
|
||||
case RTE_FLOW_ACTION_TYPE_QUEUE:
|
||||
queue = actions->conf;
|
||||
if (queue == NULL)
|
||||
return 0;
|
||||
if (mlx5_rxq_get_type(dev, queue->index) !=
|
||||
MLX5_RXQ_TYPE_HAIRPIN)
|
||||
return 0;
|
||||
@ -2822,6 +2824,8 @@ flow_check_hairpin_split(struct rte_eth_dev *dev,
|
||||
break;
|
||||
case RTE_FLOW_ACTION_TYPE_RSS:
|
||||
rss = actions->conf;
|
||||
if (rss == NULL || rss->queue_num == 0)
|
||||
return 0;
|
||||
if (mlx5_rxq_get_type(dev, rss->queue[0]) !=
|
||||
MLX5_RXQ_TYPE_HAIRPIN)
|
||||
return 0;
|
||||
|
Loading…
Reference in New Issue
Block a user