This fix replaces the usage of roc_nix_num_xstats_get() which is compile time api with runtime api roc_nix_xstats_names_get() resolving xstat count difference for cn9k and cn10k while displaying xstats for dpdk ports
Fixes: 825bd1d9d8e6 ("common/cnxk: update extra stats for inline device") Signed-off-by: Rakesh Kudurumalla <rkuduruma...@marvell.com> --- drivers/net/cnxk/cnxk_stats.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/net/cnxk/cnxk_stats.c b/drivers/net/cnxk/cnxk_stats.c index 4b0deac05e..f2f2222c89 100644 --- a/drivers/net/cnxk/cnxk_stats.c +++ b/drivers/net/cnxk/cnxk_stats.c @@ -172,7 +172,7 @@ cnxk_nix_xstats_get_names(struct rte_eth_dev *eth_dev, struct roc_nix *nix = &dev->nix; int roc_size, size, i, q; - roc_size = roc_nix_num_xstats_get(nix); + roc_size = roc_nix_xstats_names_get(nix, NULL, 0); /* Per Queue statistics also returned as part of xstats */ size = roc_size + (dev->nb_rxq * CNXK_NB_RXQ_STATS) + (dev->nb_txq * CNXK_NB_TXQ_STATS); @@ -232,7 +232,7 @@ cnxk_nix_xstats_get_names_by_id(struct rte_eth_dev *eth_dev, unsigned int limit) { struct cnxk_eth_dev *dev = cnxk_eth_pmd_priv(eth_dev); - uint32_t nix_cnt = roc_nix_num_xstats_get(&dev->nix); + uint32_t nix_cnt = roc_nix_xstats_names_get(&dev->nix, NULL, 0); uint32_t stat_cnt = nix_cnt + (dev->nb_rxq * CNXK_NB_RXQ_STATS) + (dev->nb_txq * CNXK_NB_TXQ_STATS); struct rte_eth_xstat_name xnames[stat_cnt]; @@ -265,7 +265,7 @@ cnxk_nix_xstats_get_by_id(struct rte_eth_dev *eth_dev, const uint64_t *ids, uint64_t *values, unsigned int n) { struct cnxk_eth_dev *dev = cnxk_eth_pmd_priv(eth_dev); - uint32_t nix_cnt = roc_nix_num_xstats_get(&dev->nix); + uint32_t nix_cnt = roc_nix_xstats_names_get(&dev->nix, NULL, 0); uint32_t stat_cnt = nix_cnt + (dev->nb_rxq * CNXK_NB_RXQ_STATS) + (dev->nb_txq * CNXK_NB_TXQ_STATS); struct rte_eth_xstat xstats[stat_cnt]; -- 2.25.1