DPDK patches and discussions
 help / color / mirror / Atom feed
* [dpdk-dev] [PATCH] net/mlx5: fix hairpin split detection
@ 2019-11-19 12:38 Ori Kam
  2019-11-19 15:59 ` Raslan Darawsheh
  0 siblings, 1 reply; 2+ messages in thread
From: Ori Kam @ 2019-11-19 12:38 UTC (permalink / raw)
  To: Matan Azrad, Shahaf Shuler, Viacheslav Ovsiienko; +Cc: dev, orika

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 <orika@mellanox.com>
Acked-by: Viacheslav Ovsiienko <viacheslavo@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


^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [dpdk-dev] [PATCH] net/mlx5: fix hairpin split detection
  2019-11-19 12:38 [dpdk-dev] [PATCH] net/mlx5: fix hairpin split detection Ori Kam
@ 2019-11-19 15:59 ` Raslan Darawsheh
  0 siblings, 0 replies; 2+ messages in thread
From: Raslan Darawsheh @ 2019-11-19 15:59 UTC (permalink / raw)
  To: Ori Kam, Matan Azrad, Shahaf Shuler, Slava Ovsiienko; +Cc: dev, Ori Kam

Hi,


> -----Original Message-----
> From: dev <dev-bounces@dpdk.org> On Behalf Of Ori Kam
> Sent: Tuesday, November 19, 2019 2:39 PM
> To: Matan Azrad <matan@mellanox.com>; Shahaf Shuler
> <shahafs@mellanox.com>; Slava Ovsiienko <viacheslavo@mellanox.com>
> Cc: dev@dpdk.org; Ori Kam <orika@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 <orika@mellanox.com>
> Acked-by: Viacheslav Ovsiienko <viacheslavo@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

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2019-11-19 15:59 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-11-19 12:38 [dpdk-dev] [PATCH] net/mlx5: fix hairpin split detection Ori Kam
2019-11-19 15:59 ` Raslan Darawsheh

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).