eal: fix return codes on control thread failure
This function returned positive error numbers instead of negative ones as desbribed in the doc. What's worse, multiple of its callers only check for (rc < 0) to detect failure. It was incorrectly assumed that pthread_create and pthread_setaffinity_np return negative errnos. They always returns positive ones, so this patch negates their return values before returning. Fixes: 9e5afc72c909 ("eal: add function to create control threads") Cc: stable@dpdk.org Signed-off-by: Dariusz Stojaczyk <dariuszx.stojaczyk@intel.com> Acked-by: Anatoly Burakov <anatoly.burakov@intel.com> Reviewed-by: Olivier Matz <olivier.matz@6wind.com>
This commit is contained in:
parent
82dcc8b4bc
commit
6770a5f8a2
@ -175,7 +175,7 @@ rte_ctrl_thread_create(pthread_t *thread, const char *name,
|
||||
|
||||
params = malloc(sizeof(*params));
|
||||
if (!params)
|
||||
return -1;
|
||||
return -ENOMEM;
|
||||
|
||||
params->start_routine = start_routine;
|
||||
params->arg = arg;
|
||||
@ -185,7 +185,7 @@ rte_ctrl_thread_create(pthread_t *thread, const char *name,
|
||||
ret = pthread_create(thread, attr, rte_thread_init, (void *)params);
|
||||
if (ret != 0) {
|
||||
free(params);
|
||||
return ret;
|
||||
return -ret;
|
||||
}
|
||||
|
||||
if (name != NULL) {
|
||||
@ -228,5 +228,5 @@ fail:
|
||||
}
|
||||
pthread_cancel(*thread);
|
||||
pthread_join(*thread, NULL);
|
||||
return ret;
|
||||
return -ret;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user