rte_log_register_type_and_pick_level() returns an int.
Casting to a uin32_t will make us miss the -1 passed in case of failure.

Fixes: 37b881a96194 ("telemetry: use log function from pointer")

Signed-off-by: David Marchand <david.march...@redhat.com>
---
 lib/librte_eal/freebsd/eal.c | 4 +++-
 lib/librte_eal/linux/eal.c   | 4 +++-
 2 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/lib/librte_eal/freebsd/eal.c b/lib/librte_eal/freebsd/eal.c
index 32442e5ba6..5544701f20 100644
--- a/lib/librte_eal/freebsd/eal.c
+++ b/lib/librte_eal/freebsd/eal.c
@@ -941,8 +941,10 @@ rte_eal_init(int argc, char **argv)
                return -1;
        }
        if (!internal_conf->no_telemetry) {
-               uint32_t tlog = rte_log_register_type_and_pick_level(
+               int tlog = rte_log_register_type_and_pick_level(
                                "lib.telemetry", RTE_LOG_WARNING);
+               if (tlog < 0)
+                       tlog = RTE_LOGTYPE_EAL;
                if (rte_telemetry_init(rte_eal_get_runtime_dir(),
                                rte_version(),
                                &internal_conf->ctrl_cpuset, rte_log, tlog) != 
0)
diff --git a/lib/librte_eal/linux/eal.c b/lib/librte_eal/linux/eal.c
index abbb537746..9b47fef6f8 100644
--- a/lib/librte_eal/linux/eal.c
+++ b/lib/librte_eal/linux/eal.c
@@ -1314,8 +1314,10 @@ rte_eal_init(int argc, char **argv)
                return -1;
        }
        if (!internal_conf->no_telemetry) {
-               uint32_t tlog = rte_log_register_type_and_pick_level(
+               int tlog = rte_log_register_type_and_pick_level(
                                "lib.telemetry", RTE_LOG_WARNING);
+               if (tlog < 0)
+                       tlog = RTE_LOGTYPE_EAL;
                if (rte_telemetry_init(rte_eal_get_runtime_dir(),
                                rte_version(),
                                &internal_conf->ctrl_cpuset, rte_log, tlog) != 
0)
-- 
2.23.0

Reply via email to