From: Remy Horton Date: Mon, 2 Jul 2018 14:55:47 +0000 (+0100) Subject: metrics: do not fail silently when uninitialised X-Git-Url: http://git.droids-corp.org/?a=commitdiff_plain;h=a84bdf6a101f2ab3c3859a40f366962d78c12868;p=dpdk.git 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 --- 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);