git.droids-corp.org
/
dpdk.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
net/virtio: fix vectorized Rx queue rearm
[dpdk.git]
/
drivers
/
net
/
bnxt
/
bnxt_stats.c
diff --git
a/drivers/net/bnxt/bnxt_stats.c
b/drivers/net/bnxt/bnxt_stats.c
index
01d90de
..
11767e0
100644
(file)
--- a/
drivers/net/bnxt/bnxt_stats.c
+++ b/
drivers/net/bnxt/bnxt_stats.c
@@
-528,6
+528,8
@@
int bnxt_stats_get_op(struct rte_eth_dev *eth_dev,
struct bnxt_rx_queue *rxq = bp->rx_queues[i];
struct bnxt_cp_ring_info *cpr = rxq->cp_ring;
struct bnxt_rx_queue *rxq = bp->rx_queues[i];
struct bnxt_cp_ring_info *cpr = rxq->cp_ring;
+ if (!rxq->rx_started)
+ continue;
rc = bnxt_hwrm_ctx_qstats(bp, cpr->hw_stats_ctx_id, i,
bnxt_stats, 1);
if (unlikely(rc))
rc = bnxt_hwrm_ctx_qstats(bp, cpr->hw_stats_ctx_id, i,
bnxt_stats, 1);
if (unlikely(rc))
@@
-543,6
+545,8
@@
int bnxt_stats_get_op(struct rte_eth_dev *eth_dev,
struct bnxt_tx_queue *txq = bp->tx_queues[i];
struct bnxt_cp_ring_info *cpr = txq->cp_ring;
struct bnxt_tx_queue *txq = bp->tx_queues[i];
struct bnxt_cp_ring_info *cpr = txq->cp_ring;
+ if (!txq->tx_started)
+ continue;
rc = bnxt_hwrm_ctx_qstats(bp, cpr->hw_stats_ctx_id, i,
bnxt_stats, 0);
if (unlikely(rc))
rc = bnxt_hwrm_ctx_qstats(bp, cpr->hw_stats_ctx_id, i,
bnxt_stats, 0);
if (unlikely(rc))
@@
-594,10
+598,15
@@
int bnxt_dev_xstats_get_op(struct rte_eth_dev *eth_dev,
if (rc)
return rc;
if (rc)
return rc;
- if (xstats == NULL)
- return 0;
+ stat_count = RTE_DIM(bnxt_rx_stats_strings) +
+ RTE_DIM(bnxt_tx_stats_strings) +
+ RTE_DIM(bnxt_func_stats_strings) +
+ RTE_DIM(bnxt_rx_ext_stats_strings) +
+ RTE_DIM(bnxt_tx_ext_stats_strings) +
+ bnxt_flow_stats_cnt(bp);
- memset(xstats, 0, sizeof(*xstats));
+ if (n < stat_count || xstats == NULL)
+ return stat_count;
bnxt_hwrm_func_qstats(bp, 0xffff, NULL, &func_qstats);
bnxt_hwrm_port_qstats(bp);
bnxt_hwrm_func_qstats(bp, 0xffff, NULL, &func_qstats);
bnxt_hwrm_port_qstats(bp);
@@
-609,17
+618,7
@@
int bnxt_dev_xstats_get_op(struct rte_eth_dev *eth_dev,
(bp->fw_tx_port_stats_ext_size /
stat_size));
(bp->fw_tx_port_stats_ext_size /
stat_size));
- count = RTE_DIM(bnxt_rx_stats_strings) +
- RTE_DIM(bnxt_tx_stats_strings) +
- RTE_DIM(bnxt_func_stats_strings) +
- RTE_DIM(bnxt_rx_ext_stats_strings) +
- RTE_DIM(bnxt_tx_ext_stats_strings) +
- bnxt_flow_stats_cnt(bp);
-
- stat_count = count;
-
- if (n < count)
- return count;
+ memset(xstats, 0, sizeof(*xstats));
count = 0;
for (i = 0; i < RTE_DIM(bnxt_rx_stats_strings); i++) {
count = 0;
for (i = 0; i < RTE_DIM(bnxt_rx_stats_strings); i++) {