[dpdk-dev] [PATCH v2 01/11] net/sfc: fix get xstats by ID callback to use MAC stats lock
Andrew Rybchenko
andrew.rybchenko at oktetlabs.ru
Thu Jul 22 11:54:23 CEST 2021
From: Ivan Ilchenko <ivan.ilchenko at oktetlabs.ru>
Add MAC stats lock in get xstats by id callback before reading
number of supported MAC stats.
Fixes: 73280c1e4ff ("net/sfc: support xstats retrieval by ID")
Cc: stable at dpdk.org
Signed-off-by: Ivan Ilchenko <ivan.ilchenko at oktetlabs.ru>
Signed-off-by: Andrew Rybchenko <andrew.rybchenko at oktetlabs.ru>
Reviewed-by: Andy Moreton <amoreton at xilinx.com>
---
drivers/net/sfc/sfc_ethdev.c | 10 ++++++----
1 file changed, 6 insertions(+), 4 deletions(-)
diff --git a/drivers/net/sfc/sfc_ethdev.c b/drivers/net/sfc/sfc_ethdev.c
index 88896db1f8..d4ac61ff76 100644
--- a/drivers/net/sfc/sfc_ethdev.c
+++ b/drivers/net/sfc/sfc_ethdev.c
@@ -789,12 +789,14 @@ sfc_xstats_get_by_id(struct rte_eth_dev *dev, const uint64_t *ids,
int ret;
int rc;
- if (unlikely(values == NULL) ||
- unlikely((ids == NULL) && (n < port->mac_stats_nb_supported)))
- return port->mac_stats_nb_supported;
-
rte_spinlock_lock(&port->mac_stats_lock);
+ if (unlikely(values == NULL) ||
+ unlikely(ids == NULL && n < port->mac_stats_nb_supported)) {
+ ret = port->mac_stats_nb_supported;
+ goto unlock;
+ }
+
rc = sfc_port_update_mac_stats(sa);
if (rc != 0) {
SFC_ASSERT(rc > 0);
--
2.30.2
More information about the dev
mailing list