From 53ecfa24fbcd17d9855937391ce347f37434fbfa Mon Sep 17 00:00:00 2001 From: Remy Horton Date: Tue, 19 Jul 2016 12:05:17 +0100 Subject: [PATCH] ethdev: fix overwriting driver-specific stats After doing a driver callout to fill in the driver specific parts of struct rte_eth_stats, rte_eth_stats_get() overwrites the rx_nombuf member regardless of whether the driver itself has assigned a value. Any driver-assigned value should take priority. Fixes: af75078fece3 ("first public release") Signed-off-by: Remy Horton --- lib/librte_ether/rte_ethdev.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/librte_ether/rte_ethdev.c b/lib/librte_ether/rte_ethdev.c index 0a6e3f1803..f62a9ecf45 100644 --- a/lib/librte_ether/rte_ethdev.c +++ b/lib/librte_ether/rte_ethdev.c @@ -1490,8 +1490,8 @@ rte_eth_stats_get(uint8_t port_id, struct rte_eth_stats *stats) memset(stats, 0, sizeof(*stats)); RTE_FUNC_PTR_OR_ERR_RET(*dev->dev_ops->stats_get, -ENOTSUP); - (*dev->dev_ops->stats_get)(dev, stats); stats->rx_nombuf = dev->data->rx_mbuf_alloc_failed; + (*dev->dev_ops->stats_get)(dev, stats); return 0; } -- 2.20.1