Hi,
> -----Original Message----- > From: dev <dev-boun...@dpdk.org> On Behalf Of Ori Kam > Sent: Tuesday, November 19, 2019 2:39 PM > To: Matan Azrad <ma...@mellanox.com>; Shahaf Shuler > <shah...@mellanox.com>; Slava Ovsiienko <viachesl...@mellanox.com> > Cc: dev@dpdk.org; Ori Kam <or...@mellanox.com> > Subject: [dpdk-dev] [PATCH] 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: d85c7b5ea59f ("net/mlx5: split hairpin flows") > > Signed-off-by: Ori Kam <or...@mellanox.com> > Acked-by: Viacheslav Ovsiienko <viachesl...@mellanox.com> > --- > drivers/net/mlx5/mlx5_flow.c | 4 ++++ > 1 file changed, 4 insertions(+) > > diff --git a/drivers/net/mlx5/mlx5_flow.c b/drivers/net/mlx5/mlx5_flow.c > index d677de8..b488b67 100644 > --- a/drivers/net/mlx5/mlx5_flow.c > +++ b/drivers/net/mlx5/mlx5_flow.c > @@ -2814,6 +2814,8 @@ uint32_t mlx5_flow_adjust_priority(struct > rte_eth_dev *dev, int32_t priority, > 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 @@ uint32_t mlx5_flow_adjust_priority(struct > rte_eth_dev *dev, int32_t priority, > 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; > -- > 1.8.3.1 Patch applied to next-net-mlx, Kindest regards, Raslan Darawsheh