From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <dev-bounces@dpdk.org>
Received: from dpdk.org (dpdk.org [92.243.14.124])
	by inbox.dpdk.org (Postfix) with ESMTP id 65A3EA0521;
	Tue,  3 Nov 2020 13:24:40 +0100 (CET)
Received: from [92.243.14.124] (localhost [127.0.0.1])
	by dpdk.org (Postfix) with ESMTP id 614D3CA08;
	Tue,  3 Nov 2020 13:22:34 +0100 (CET)
Received: from new3-smtp.messagingengine.com (new3-smtp.messagingengine.com
 [66.111.4.229]) by dpdk.org (Postfix) with ESMTP id CCB13C9FE;
 Tue,  3 Nov 2020 13:22:31 +0100 (CET)
Received: from compute2.internal (compute2.nyi.internal [10.202.2.42])
 by mailnew.nyi.internal (Postfix) with ESMTP id 3FB3158015F;
 Tue,  3 Nov 2020 07:22:30 -0500 (EST)
Received: from mailfrontend2 ([10.202.2.163])
 by compute2.internal (MEProxy); Tue, 03 Nov 2020 07:22:30 -0500
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=monjalon.net; h=
 from:to:cc:subject:date:message-id:in-reply-to:references
 :mime-version:content-transfer-encoding; s=fm2; bh=N5XVBGmRr4nw6
 +7oDevfRN3r39vrlkp7xLtpl8ya5Kk=; b=PEVp2ZEGQRRjzqN/BRctAOb1VjDNm
 DvyBvQsJBJUbRiKIQd8mZxB/UHRCMgiNbo5I8GsN2kVjuaQ9iRVvPWI0/LuiDQuo
 Kzxsexh6GyCX+N0dBRLVPVV6BGAe2uMGsvkB5Ro089FmcxAHF1CfoXrqyhvodJkH
 IZoc+dyu/fttQUtLLyqAOrNH4Zppl3qKZbb9nxicIzohzwzvL9iIY8d0qm/CxpeB
 z38RojRyiPl5+mULOg0h82ARvM41xBZQO68CJPLdi4ZUe+PmztJWTBgaH2IZSim9
 FWBozXABPZBfS2eWhPqtWMdxdALGJAGjld2fnJMAmuv6GLD1BjRzbuMlA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
 messagingengine.com; h=cc:content-transfer-encoding:date:from
 :in-reply-to:message-id:mime-version:references:subject:to
 :x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=
 fm1; bh=N5XVBGmRr4nw6+7oDevfRN3r39vrlkp7xLtpl8ya5Kk=; b=Ol3D9o4W
 6k+nskh+V0rla/2elhO60FnHIJ5B39RXGeQBExmcRpER6iNIiTTUrFr8C1GGmBGL
 sr7U5863MVEj5k0PrsERSxvrX8wDLdSRgdSvdu07RN5+NHDI26GlJSn9a+Vi+sLp
 wJy7Wux1rPL9/JaYVwIVIHUuCsu+uzxgAFfEW6ZdG4rA9aQO4NrwRJms5EU9ZT8U
 7+UhQCHdJbaB6PYx+Y77pZ+HQQYZjKrs6lfrGdNoVTPMR9advhKCVDPz3sX/fKDa
 j7TPv5VA3mnTqdwJcf/O+vvQ5734bAPHBY+4uwV6aHsMpvXKp+U7ZoXbIhoatFOk
 0A1qumEUto6W/Q==
X-ME-Sender: <xms:hkuhX7mcpnVztE9pZU0zAv0GR46Iuty0R7lnWxzU9a4uMd0d6hciCQ>
 <xme:hkuhX-0MQfl8qSNjPmc8cQUhXMZYKZj8VadT0dYWMqdsNsk-GId5Kw2Klm9yNJVtj
 3upRQ1cgtlAzU5UWQ>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedujedruddtfedgfeelucetufdoteggodetrfdotf
 fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen
 uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne
 cujfgurhephffvufffkffojghfggfgsedtkeertdertddtnecuhfhrohhmpefvhhhomhgr
 shcuofhonhhjrghlohhnuceothhhohhmrghssehmohhnjhgrlhhonhdrnhgvtheqnecugg
 ftrfgrthhtvghrnhepvdehgfeivdejgedtveehfefhteelfefgieevgfffveefjeegtdfg
 uedthedtgeevnecukfhppeejjedrudefgedrvddtfedrudekgeenucevlhhushhtvghruf
 hiiigvpeegnecurfgrrhgrmhepmhgrihhlfhhrohhmpehthhhomhgrshesmhhonhhjrghl
 ohhnrdhnvght
X-ME-Proxy: <xmx:hkuhXxrHK_qRFqmkxQL2tt28eWlALb5extFH2qUQgMJ4v-AJ6DoQuQ>
 <xmx:hkuhXzmOYDY3NeEKXtpNjx_txkeJvgUx0QIDJkl3vP0EjvGXyfnQGg>
 <xmx:hkuhX52Is61Reoz1qV4jluFSVn8iJv2Tsq18mcG_-xMO--7j73xZHQ>
 <xmx:hkuhXzyviX66DQuWbEpKsl6KVoZ_gCpHKNSIX3NbUeASCd3QodVMeA>
Received: from xps.monjalon.net (184.203.134.77.rev.sfr.net [77.134.203.184])
 by mail.messagingengine.com (Postfix) with ESMTPA id B44583064674;
 Tue,  3 Nov 2020 07:22:28 -0500 (EST)
From: Thomas Monjalon <thomas@monjalon.net>
To: dev@dpdk.org
Cc: ferruh.yigit@intel.com, david.marchand@redhat.com,
 bruce.richardson@intel.com, olivier.matz@6wind.com,
 andrew.rybchenko@oktetlabs.ru, jerinj@marvell.com, viacheslavo@nvidia.com,
 stable@dpdk.org, Matan Azrad <matan@nvidia.com>,
 Shahaf Shuler <shahafs@nvidia.com>, Ori Kam <orika@mellanox.com>
Date: Tue,  3 Nov 2020 13:21:55 +0100
Message-Id: <20201103122205.183472-7-thomas@monjalon.net>
X-Mailer: git-send-email 2.28.0
In-Reply-To: <20201103122205.183472-1-thomas@monjalon.net>
References: <20201029092751.3837177-1-thomas@monjalon.net>
 <20201103122205.183472-1-thomas@monjalon.net>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Subject: [dpdk-dev] [PATCH v4 06/16] net/mlx5: fix dynamic mbuf offset
	lookup check
X-BeenThere: dev@dpdk.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: DPDK patches and discussions <dev.dpdk.org>
List-Unsubscribe: <https://mails.dpdk.org/options/dev>,
 <mailto:dev-request@dpdk.org?subject=unsubscribe>
List-Archive: <http://mails.dpdk.org/archives/dev/>
List-Post: <mailto:dev@dpdk.org>
List-Help: <mailto:dev-request@dpdk.org?subject=help>
List-Subscribe: <https://mails.dpdk.org/listinfo/dev>,
 <mailto:dev-request@dpdk.org?subject=subscribe>
Errors-To: dev-bounces@dpdk.org
Sender: "dev" <dev-bounces@dpdk.org>

The functions rte_mbuf_dynfield_lookup() and rte_mbuf_dynflag_lookup()
can return an offset starting with 0 or a negative error code.

In reality the first offsets are probably reserved forever,
but for the sake of strict API compliance,
the checks which considered 0 as an error are fixed.

Fixes: efa79e68c8cd ("net/mlx5: support fine grain dynamic flag")
Fixes: 3172c471b86f ("net/mlx5: prepare Tx queue structures to support timestamp")
Fixes: 0febfcce3693 ("net/mlx5: prepare Tx to support scheduling")
Cc: stable@dpdk.org

Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
Acked-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
Acked-by: David Marchand <david.marchand@redhat.com>
---
 drivers/net/mlx5/mlx5_rxtx.c    | 4 ++--
 drivers/net/mlx5/mlx5_trigger.c | 2 +-
 drivers/net/mlx5/mlx5_txq.c     | 2 +-
 3 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/net/mlx5/mlx5_rxtx.c b/drivers/net/mlx5/mlx5_rxtx.c
index b530ff421f..e86468b67a 100644
--- a/drivers/net/mlx5/mlx5_rxtx.c
+++ b/drivers/net/mlx5/mlx5_rxtx.c
@@ -5661,9 +5661,9 @@ mlx5_select_tx_function(struct rte_eth_dev *dev)
 	}
 	if (tx_offloads & DEV_TX_OFFLOAD_SEND_ON_TIMESTAMP &&
 	    rte_mbuf_dynflag_lookup
-			(RTE_MBUF_DYNFLAG_TX_TIMESTAMP_NAME, NULL) > 0 &&
+			(RTE_MBUF_DYNFLAG_TX_TIMESTAMP_NAME, NULL) >= 0 &&
 	    rte_mbuf_dynfield_lookup
-			(RTE_MBUF_DYNFIELD_TIMESTAMP_NAME, NULL) > 0) {
+			(RTE_MBUF_DYNFIELD_TIMESTAMP_NAME, NULL) >= 0) {
 		/* Offload configured, dynamic entities registered. */
 		olx |= MLX5_TXOFF_CONFIG_TXPP;
 	}
diff --git a/drivers/net/mlx5/mlx5_trigger.c b/drivers/net/mlx5/mlx5_trigger.c
index 7735f022a3..917b433c4a 100644
--- a/drivers/net/mlx5/mlx5_trigger.c
+++ b/drivers/net/mlx5/mlx5_trigger.c
@@ -302,7 +302,7 @@ mlx5_dev_start(struct rte_eth_dev *dev)
 	DRV_LOG(DEBUG, "port %u starting device", dev->data->port_id);
 	fine_inline = rte_mbuf_dynflag_lookup
 		(RTE_PMD_MLX5_FINE_GRANULARITY_INLINE, NULL);
-	if (fine_inline > 0)
+	if (fine_inline >= 0)
 		rte_net_mlx5_dynf_inline_mask = 1UL << fine_inline;
 	else
 		rte_net_mlx5_dynf_inline_mask = 0;
diff --git a/drivers/net/mlx5/mlx5_txq.c b/drivers/net/mlx5/mlx5_txq.c
index af84f5f72b..8ed2bcff7b 100644
--- a/drivers/net/mlx5/mlx5_txq.c
+++ b/drivers/net/mlx5/mlx5_txq.c
@@ -1305,7 +1305,7 @@ mlx5_txq_dynf_timestamp_set(struct rte_eth_dev *dev)
 				(RTE_MBUF_DYNFLAG_TX_TIMESTAMP_NAME, NULL);
 	off = rte_mbuf_dynfield_lookup
 				(RTE_MBUF_DYNFIELD_TIMESTAMP_NAME, NULL);
-	if (nbit > 0 && off >= 0 && sh->txpp.refcnt)
+	if (nbit >= 0 && off >= 0 && sh->txpp.refcnt)
 		mask = 1ULL << nbit;
 	for (i = 0; i != priv->txqs_n; ++i) {
 		data = (*priv->txqs)[i];
-- 
2.28.0