[dpdk-stable] patch 'net/mlx5: fix iterator type in Rx queue management' has been queued to stable release 19.11.4

luca.boccassi at gmail.com luca.boccassi at gmail.com
Fri Jul 24 13:58:27 CEST 2020


Hi,

FYI, your patch has been queued to stable release 19.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 07/26/20. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Thanks.

Luca Boccassi

---
>From 245b44464f9d8a12ba5c0dadb9f1be13faf07226 Mon Sep 17 00:00:00 2001
From: Michael Baum <michaelba at mellanox.com>
Date: Wed, 24 Jun 2020 13:50:39 +0000
Subject: [PATCH] net/mlx5: fix iterator type in Rx queue management

[ upstream commit 0f006468c53c8151fa70ff41869c1a76316fe224 ]

The mlx5_check_vec_rx_support function in the mlx5_rxtx_vec.c file
passes the RX queues array in the loop. Similarly, the mlx5_mprq_enabled
function in the mlx5_rxq.c file passes the RX queues array in the loop.

In both cases, the iterator of the loop is called i and the variable
representing the array size is called rxqs_n.
The i variable is of UINT16_T type while the rxqs_n variable is of
unsigned int type. The size of the rxqs_n variable is much larger than
the number of iterations allowed by the i type, theoretically there may
be a situation where the value of the rxqs_n will be greater than can be
represented by 16 bits and the loop will never end.

Change the type of i to UINT32_T.

Fixes: 7d6bf6b866b8 ("net/mlx5: add Multi-Packet Rx support")
Fixes: 6cb559d67b83 ("net/mlx5: add vectorized Rx/Tx burst for x86")

Signed-off-by: Michael Baum <michaelba at mellanox.com>
Acked-by: Matan Azrad <matan at mellanox.com>
---
 drivers/net/mlx5/mlx5_rxq.c      | 2 +-
 drivers/net/mlx5/mlx5_rxtx_vec.c | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/net/mlx5/mlx5_rxq.c b/drivers/net/mlx5/mlx5_rxq.c
index baa868360..e9e8f1278 100644
--- a/drivers/net/mlx5/mlx5_rxq.c
+++ b/drivers/net/mlx5/mlx5_rxq.c
@@ -105,7 +105,7 @@ inline int
 mlx5_mprq_enabled(struct rte_eth_dev *dev)
 {
 	struct mlx5_priv *priv = dev->data->dev_private;
-	uint16_t i;
+	uint32_t i;
 	uint16_t n = 0;
 	uint16_t n_ibv = 0;
 
diff --git a/drivers/net/mlx5/mlx5_rxtx_vec.c b/drivers/net/mlx5/mlx5_rxtx_vec.c
index dbb4cfaeb..0c705d1f7 100644
--- a/drivers/net/mlx5/mlx5_rxtx_vec.c
+++ b/drivers/net/mlx5/mlx5_rxtx_vec.c
@@ -156,7 +156,7 @@ int __attribute__((cold))
 mlx5_check_vec_rx_support(struct rte_eth_dev *dev)
 {
 	struct mlx5_priv *priv = dev->data->dev_private;
-	uint16_t i;
+	uint32_t i;
 
 	if (!priv->config.rx_vec_en)
 		return -ENOTSUP;
-- 
2.20.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2020-07-24 12:53:51.246695698 +0100
+++ 0069-net-mlx5-fix-iterator-type-in-Rx-queue-management.patch	2020-07-24 12:53:48.295006608 +0100
@@ -1,8 +1,10 @@
-From 0f006468c53c8151fa70ff41869c1a76316fe224 Mon Sep 17 00:00:00 2001
+From 245b44464f9d8a12ba5c0dadb9f1be13faf07226 Mon Sep 17 00:00:00 2001
 From: Michael Baum <michaelba at mellanox.com>
 Date: Wed, 24 Jun 2020 13:50:39 +0000
 Subject: [PATCH] net/mlx5: fix iterator type in Rx queue management
 
+[ upstream commit 0f006468c53c8151fa70ff41869c1a76316fe224 ]
+
 The mlx5_check_vec_rx_support function in the mlx5_rxtx_vec.c file
 passes the RX queues array in the loop. Similarly, the mlx5_mprq_enabled
 function in the mlx5_rxq.c file passes the RX queues array in the loop.
@@ -19,7 +21,6 @@
 
 Fixes: 7d6bf6b866b8 ("net/mlx5: add Multi-Packet Rx support")
 Fixes: 6cb559d67b83 ("net/mlx5: add vectorized Rx/Tx burst for x86")
-Cc: stable at dpdk.org
 
 Signed-off-by: Michael Baum <michaelba at mellanox.com>
 Acked-by: Matan Azrad <matan at mellanox.com>
@@ -29,10 +30,10 @@
  2 files changed, 2 insertions(+), 2 deletions(-)
 
 diff --git a/drivers/net/mlx5/mlx5_rxq.c b/drivers/net/mlx5/mlx5_rxq.c
-index bd0037b82..b436f0610 100644
+index baa868360..e9e8f1278 100644
 --- a/drivers/net/mlx5/mlx5_rxq.c
 +++ b/drivers/net/mlx5/mlx5_rxq.c
-@@ -108,7 +108,7 @@ inline int
+@@ -105,7 +105,7 @@ inline int
  mlx5_mprq_enabled(struct rte_eth_dev *dev)
  {
  	struct mlx5_priv *priv = dev->data->dev_private;
@@ -42,10 +43,10 @@
  	uint16_t n_ibv = 0;
  
 diff --git a/drivers/net/mlx5/mlx5_rxtx_vec.c b/drivers/net/mlx5/mlx5_rxtx_vec.c
-index b38bd203c..7fae2010f 100644
+index dbb4cfaeb..0c705d1f7 100644
 --- a/drivers/net/mlx5/mlx5_rxtx_vec.c
 +++ b/drivers/net/mlx5/mlx5_rxtx_vec.c
-@@ -156,7 +156,7 @@ int __rte_cold
+@@ -156,7 +156,7 @@ int __attribute__((cold))
  mlx5_check_vec_rx_support(struct rte_eth_dev *dev)
  {
  	struct mlx5_priv *priv = dev->data->dev_private;


More information about the stable mailing list