From: Remy Horton Date: Tue, 19 Jul 2016 11:05:17 +0000 (+0100) Subject: ethdev: fix overwriting driver-specific stats X-Git-Tag: spdx-start~6125 X-Git-Url: http://git.droids-corp.org/?a=commitdiff_plain;h=53ecfa24fbcd17d9855937391ce347f37434fbfa;hp=6262b92eaab365d52b551fa78adfd871ed59000e;p=dpdk.git 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 --- 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; }