DPDK patches and discussions
 help / color / mirror / Atom feed
From: "Wei Hu (Xavier)" <xavier.huwei@huawei.com>
To: <thomas@monjalon.net>, <ferruh.yigit@intel.com>,
	<arybchenko@solarflare.com>, <anatoly.burakov@intel.com>,
	<hemant.agrawal@nxp.com>, <sachin.saxena@nxp.com>,
	<johndale@cisco.com>, <hyonkim@cisco.com>, <qi.z.zhang@intel.com>,
	<xiao.w.wang@intel.com>, <xuanziyang2@huawei.com>,
	<cloud.wangxiaoyun@huawei.com>, <zhouguoyang@huawei.com>,
	<beilei.xing@intel.com>, <jia.guo@intel.com>,
	<heinrich.kuhn@netronome.com>, <hkalra@marvell.com>,
	<jerinj@marvell.com>, <ndabilpuram@marvell.com>,
	<kirankumark@marvell.com>, <rmody@marvell.com>,
Cc: <dev@dpdk.org>, <xavier.huwei@huawei.com>
Subject: [dpdk-dev] [PATCH v4 1/2] ethdev: fix data room size verification in Rx queue setup
Date: Mon, 22 Jun 2020 16:08:59 +0800
Message-ID: <1592813340-44094-2-git-send-email-xavier.huwei@huawei.com> (raw)
In-Reply-To: <1592813340-44094-1-git-send-email-xavier.huwei@huawei.com>

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 chunck 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 varibale named mbp_buf_size is bigger than RTE_PKTMBUF_HEADROOM.

Fixes: af75078fece3 ("first public release")
Cc: stable@dpdk.org

Signed-off-by: Chengchang Tang <tangchengchang@huawei.com>
Signed-off-by: Wei Hu (Xavier) <xavier.huwei@huawei.com>
Reviewed-by: Andrew Rybchenko <arybchenko@solarflare.com>
v3 -> v4: No change.
v2 -> v3: No change.
v1 -> v2: Simplify the check condition of mbp_buf_size according to
	  Andrew Rybchenko's comment.
 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 8e10a6f..b0b0474 100644
--- a/lib/librte_ethdev/rte_ethdev.c
+++ b/lib/librte_ethdev/rte_ethdev.c
@@ -1822,7 +1822,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) {
 			"%s mbuf_data_room_size %d < %d (RTE_PKTMBUF_HEADROOM=%d + min_rx_bufsize(dev)=%d)\n",
 			mp->name, (int)mbp_buf_size,

  reply	other threads:[~2020-06-22  8:10 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-06-22  8:08 [dpdk-dev] [PATCH v4 0/2] ethdev: minor bugfixes Wei Hu (Xavier)
2020-06-22  8:08 ` Wei Hu (Xavier) [this message]
2020-06-22  8:24   ` [dpdk-dev] [PATCH v4 1/2] ethdev: fix data room size verification in Rx queue setup Sachin Saxena (OSS)
2020-06-22  8:09 ` [dpdk-dev] [PATCH v4 2/2] ethdev: fix VLAN offloads set if no relative capabilities Wei Hu (Xavier)
2020-06-22  8:27   ` Sachin Saxena (OSS)
2020-06-22  9:08   ` Wangxiaoyun (Cloud)
2020-06-29  1:34   ` Wei Hu (Xavier)
2020-06-29 14:47     ` [dpdk-dev] [EXT] " Harman Kalra
2020-07-01  2:32       ` Wei Hu (Xavier)
2020-07-03  1:28     ` [dpdk-dev] " Wei Hu (Xavier)
2020-07-05 11:22       ` Jeff Guo
2020-07-06  6:32         ` Wei Hu (Xavier)

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1592813340-44094-2-git-send-email-xavier.huwei@huawei.com \
    --to=xavier.huwei@huawei.com \
    --cc=anatoly.burakov@intel.com \
    --cc=arybchenko@solarflare.com \
    --cc=beilei.xing@intel.com \
    --cc=cloud.wangxiaoyun@huawei.com \
    --cc=dev@dpdk.org \
    --cc=ferruh.yigit@intel.com \
    --cc=heinrich.kuhn@netronome.com \
    --cc=hemant.agrawal@nxp.com \
    --cc=hkalra@marvell.com \
    --cc=hyonkim@cisco.com \
    --cc=jerinj@marvell.com \
    --cc=jia.guo@intel.com \
    --cc=johndale@cisco.com \
    --cc=kirankumark@marvell.com \
    --cc=ndabilpuram@marvell.com \
    --cc=qi.z.zhang@intel.com \
    --cc=rmody@marvell.com \
    --cc=sachin.saxena@nxp.com \
    --cc=shshaikh@marvell.com \
    --cc=thomas@monjalon.net \
    --cc=xiao.w.wang@intel.com \
    --cc=xuanziyang2@huawei.com \
    --cc=zhouguoyang@huawei.com \


* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

DPDK patches and discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror https://inbox.dpdk.org/dev/0 dev/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 dev dev/ https://inbox.dpdk.org/dev \
	public-inbox-index dev

Example config snippet for mirrors.
Newsgroup available over NNTP:

AGPL code for this site: git clone https://public-inbox.org/public-inbox.git