From a84bdf6a101f2ab3c3859a40f366962d78c12868 Mon Sep 17 00:00:00 2001 From: Remy Horton Date: Mon, 2 Jul 2018 15:55:47 +0100 Subject: [PATCH] metrics: do not fail silently when uninitialised If rte_metrics_init() had not been called and hence the internal metric storage is not allocated, rte_metrics_get_values() and rte_metrics_get_name() would silently fail by returning zero (i.e. no metrics registered). This patch changes the result of this scenario to an explicit fail by returning -EIO. Fixes: 349950ddb9c5 ("metrics: add information metrics library") Cc: stable@dpdk.org Signed-off-by: Remy Horton --- lib/librte_metrics/rte_metrics.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/lib/librte_metrics/rte_metrics.c b/lib/librte_metrics/rte_metrics.c index b5638f553d..038f58bf84 100644 --- a/lib/librte_metrics/rte_metrics.c +++ b/lib/librte_metrics/rte_metrics.c @@ -205,9 +205,8 @@ rte_metrics_get_names(struct rte_metric_name *names, int return_value; memzone = rte_memzone_lookup(RTE_METRICS_MEMZONE_NAME); - /* If not allocated, fail silently */ if (memzone == NULL) - return 0; + return -EIO; stats = memzone->addr; rte_spinlock_lock(&stats->lock); @@ -243,9 +242,9 @@ rte_metrics_get_values(int port_id, return -EINVAL; memzone = rte_memzone_lookup(RTE_METRICS_MEMZONE_NAME); - /* If not allocated, fail silently */ if (memzone == NULL) - return 0; + return -EIO; + stats = memzone->addr; rte_spinlock_lock(&stats->lock); -- 2.20.1