[dpdk-stable] patch 'ethdev: fix data room size verification in Rx queue setup' has been queued to stable release 19.11.4

luca.boccassi at gmail.com luca.boccassi at gmail.com
Fri Jul 24 13:59:36 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 7819e32c5b5c908d1bd5cabc530291a307a5c9b2 Mon Sep 17 00:00:00 2001
From: "Wei Hu (Xavier)" <xavier.huwei at huawei.com>
Date: Thu, 9 Jul 2020 18:43:13 +0800
Subject: [PATCH] ethdev: fix data room size verification in Rx queue setup

[ upstream commit 36fbaaf30d6ae5b3734c9b31a2dcd33695b09ef2 ]

In the rte_eth_rx_queue_setup API function, the local variable named
mbp_buf_size, which is the data room size of the input parameter mp,
is checked to guarantee that each memory chunk used for net device
in the mbuf is bigger than the min_rx_bufsize. But if mbp_buf_size is
less than RTE_PKTMBUF_HEADROOM, the value of the following  statement
will be a large number since the mbp_buf_size is a unsigned value.
    mbp_buf_size - RTE_PKTMBUF_HEADROOM
As a result, it will cause a segment fault in this situation.

This patch fixes it by modify the check condition to guarantee that the
local variable named mbp_buf_size is bigger than RTE_PKTMBUF_HEADROOM.

Fixes: af75078fece3 ("first public release")

Signed-off-by: Chengchang Tang <tangchengchang at huawei.com>
Signed-off-by: Wei Hu (Xavier) <xavier.huwei at huawei.com>
Reviewed-by: Andrew Rybchenko <arybchenko at solarflare.com>
Acked-by: Sachin Saxena <sachin.saxena at nxp.com>
Acked-by: Viacheslav Ovsiienko <viacheslavo at mellanox.com>
---
 lib/librte_ethdev/rte_ethdev.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/lib/librte_ethdev/rte_ethdev.c b/lib/librte_ethdev/rte_ethdev.c
index d245cfcea..5f1fc4842 100644
--- a/lib/librte_ethdev/rte_ethdev.c
+++ b/lib/librte_ethdev/rte_ethdev.c
@@ -1814,7 +1814,7 @@ rte_eth_rx_queue_setup(uint16_t port_id, uint16_t rx_queue_id,
 	}
 	mbp_buf_size = rte_pktmbuf_data_room_size(mp);
 
-	if ((mbp_buf_size - RTE_PKTMBUF_HEADROOM) < dev_info.min_rx_bufsize) {
+	if (mbp_buf_size < dev_info.min_rx_bufsize + RTE_PKTMBUF_HEADROOM) {
 		RTE_ETHDEV_LOG(ERR,
 			"%s mbuf_data_room_size %d < %d (RTE_PKTMBUF_HEADROOM=%d + min_rx_bufsize(dev)=%d)\n",
 			mp->name, (int)mbp_buf_size,
-- 
2.20.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2020-07-24 12:53:53.855689391 +0100
+++ 0138-ethdev-fix-data-room-size-verification-in-Rx-queue-s.patch	2020-07-24 12:53:48.447009441 +0100
@@ -1,8 +1,10 @@
-From 36fbaaf30d6ae5b3734c9b31a2dcd33695b09ef2 Mon Sep 17 00:00:00 2001
+From 7819e32c5b5c908d1bd5cabc530291a307a5c9b2 Mon Sep 17 00:00:00 2001
 From: "Wei Hu (Xavier)" <xavier.huwei at huawei.com>
 Date: Thu, 9 Jul 2020 18:43:13 +0800
 Subject: [PATCH] ethdev: fix data room size verification in Rx queue setup
 
+[ upstream commit 36fbaaf30d6ae5b3734c9b31a2dcd33695b09ef2 ]
+
 In the rte_eth_rx_queue_setup API function, the local variable named
 mbp_buf_size, which is the data room size of the input parameter mp,
 is checked to guarantee that each memory chunk used for net device
@@ -16,7 +18,6 @@
 local variable named mbp_buf_size is bigger than RTE_PKTMBUF_HEADROOM.
 
 Fixes: af75078fece3 ("first public release")
-Cc: stable at dpdk.org
 
 Signed-off-by: Chengchang Tang <tangchengchang at huawei.com>
 Signed-off-by: Wei Hu (Xavier) <xavier.huwei at huawei.com>
@@ -28,10 +29,10 @@
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/lib/librte_ethdev/rte_ethdev.c b/lib/librte_ethdev/rte_ethdev.c
-index 7022bd7f5..e3b2a0976 100644
+index d245cfcea..5f1fc4842 100644
 --- a/lib/librte_ethdev/rte_ethdev.c
 +++ b/lib/librte_ethdev/rte_ethdev.c
-@@ -1820,7 +1820,7 @@ rte_eth_rx_queue_setup(uint16_t port_id, uint16_t rx_queue_id,
+@@ -1814,7 +1814,7 @@ rte_eth_rx_queue_setup(uint16_t port_id, uint16_t rx_queue_id,
  	}
  	mbp_buf_size = rte_pktmbuf_data_room_size(mp);
  


More information about the stable mailing list