sync patches from 22.07 for hns3, dma and testpmd etc. Signed-off-by: Dongdong Liu <liudongdong3@huawei.com> (cherry picked from commit 7beb6a72fff2920a2d993030b0b02822249707fb)
59 lines
2.2 KiB
Diff
59 lines
2.2 KiB
Diff
From ae08d50d862073a8c53ed7ab4159f3125595667b Mon Sep 17 00:00:00 2001
|
|
From: Chengwen Feng <fengchengwen@huawei.com>
|
|
Date: Fri, 13 May 2022 10:53:51 +0800
|
|
Subject: [PATCH 089/122] net/hns3: fix xstats get return if xstats is null
|
|
MIME-Version: 1.0
|
|
Content-Type: text/plain; charset=UTF-8
|
|
Content-Transfer-Encoding: 8bit
|
|
|
|
Many user (e.g. telemetry) invokes rte_eth_xstats_get(port_id, NULL, 0)
|
|
to retrieve the required number of elements, but currently hns3 PMD
|
|
returns zero when xstats is null.
|
|
|
|
Dedicated check for xstats vs null is not required, since ethdev layer
|
|
guarantees that it may be null only if number of entries n is 0 (which
|
|
is definitely smaller than total xstats count).
|
|
|
|
Fixes: 8839c5e202f3 ("net/hns3: support device stats")
|
|
Cc: stable@dpdk.org
|
|
|
|
Signed-off-by: Chengwen Feng <fengchengwen@huawei.com>
|
|
Acked-by: Morten Brørup <mb@smartsharesystems.com>
|
|
Reviewed-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
|
|
---
|
|
drivers/net/hns3/hns3_stats.c | 9 +++++----
|
|
1 file changed, 5 insertions(+), 4 deletions(-)
|
|
|
|
diff --git a/drivers/net/hns3/hns3_stats.c b/drivers/net/hns3/hns3_stats.c
|
|
index 9b7ad067aa..e69761c8b3 100644
|
|
--- a/drivers/net/hns3/hns3_stats.c
|
|
+++ b/drivers/net/hns3/hns3_stats.c
|
|
@@ -1031,9 +1031,13 @@ hns3_imissed_stats_get(struct rte_eth_dev *dev, struct rte_eth_xstat *xstats,
|
|
* @praram xstats
|
|
* A pointer to a table of structure of type *rte_eth_xstat*
|
|
* to be filled with device statistics ids and values.
|
|
- * This parameter can be set to NULL if n is 0.
|
|
+ * This parameter can be set to NULL if and only if n is 0.
|
|
* @param n
|
|
* The size of the xstats array (number of elements).
|
|
+ * If lower than the required number of elements, the function returns the
|
|
+ * required number of elements.
|
|
+ * If equal to zero, the xstats parameter must be NULL, the function returns
|
|
+ * the required number of elements.
|
|
* @return
|
|
* 0 on fail, count(The size of the statistics elements) on success.
|
|
*/
|
|
@@ -1052,9 +1056,6 @@ hns3_dev_xstats_get(struct rte_eth_dev *dev, struct rte_eth_xstat *xstats,
|
|
int count;
|
|
int ret;
|
|
|
|
- if (xstats == NULL)
|
|
- return 0;
|
|
-
|
|
count = hns3_xstats_calc_num(dev);
|
|
if ((int)n < count)
|
|
return count;
|
|
--
|
|
2.22.0
|
|
|