The doc says this function returns negative errno on error, but it currently returns either -1 or positive errno.
It was incorrectly assumed that pthread_setname_np() returns negative error numbers. It always returns positive ones, so this patch negates its return value before returning. While here, also ignore rte_thread_setname() failure in rte_ctrl_thread_create() and print a debug message instead. Fixes: 3901ed99c2f8 ("eal: fix thread naming on FreeBSD") Cc: thomas.monja...@6wind.com Cc: sta...@dpdk.org Signed-off-by: Dariusz Stojaczyk <dariuszx.stojac...@intel.com> --- lib/librte_eal/common/eal_common_thread.c | 3 ++- lib/librte_eal/linuxapp/eal/eal_thread.c | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/lib/librte_eal/common/eal_common_thread.c b/lib/librte_eal/common/eal_common_thread.c index 4239863..8110ac2 100644 --- a/lib/librte_eal/common/eal_common_thread.c +++ b/lib/librte_eal/common/eal_common_thread.c @@ -191,7 +191,8 @@ rte_ctrl_thread_create(pthread_t *thread, const char *name, if (name != NULL) { ret = rte_thread_setname(*thread, name); if (ret < 0) - goto fail; + RTE_LOG(DEBUG, EAL, + "Cannot set name for ctrl thread\n"); } cpu_found = 0; diff --git a/lib/librte_eal/linuxapp/eal/eal_thread.c b/lib/librte_eal/linuxapp/eal/eal_thread.c index f652ff9..b496fc7 100644 --- a/lib/librte_eal/linuxapp/eal/eal_thread.c +++ b/lib/librte_eal/linuxapp/eal/eal_thread.c @@ -176,7 +176,7 @@ int rte_sys_gettid(void) int rte_thread_setname(pthread_t id, const char *name) { - int ret = -1; + int ret = ENOSYS; #if defined(__GLIBC__) && defined(__GLIBC_PREREQ) #if __GLIBC_PREREQ(2, 12) ret = pthread_setname_np(id, name); @@ -184,5 +184,5 @@ int rte_thread_setname(pthread_t id, const char *name) #endif RTE_SET_USED(id); RTE_SET_USED(name); - return ret; + return -ret; } -- 2.7.4