When adding an alarm, if an error happen when registering the common alarm callback, it is not considered as a major failure. The alarm is then inserted in the list. However it was returning an error code after inserting the alarm.
The error code is reset to 0 so the behaviour and the return code are consistent. Other return code related lines are cleaned up for easier understanding. Fixes: af75078fece3 ("first public release") Cc: sta...@dpdk.org Signed-off-by: Thomas Monjalon <tho...@monjalon.net> --- lib/librte_eal/linux/eal/eal_alarm.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/lib/librte_eal/linux/eal/eal_alarm.c b/lib/librte_eal/linux/eal/eal_alarm.c index 840ede780..d6d70e8c3 100644 --- a/lib/librte_eal/linux/eal/eal_alarm.c +++ b/lib/librte_eal/linux/eal/eal_alarm.c @@ -137,9 +137,13 @@ rte_eal_alarm_set(uint64_t us, rte_eal_alarm_callback cb_fn, void *cb_arg) rte_spinlock_lock(&alarm_list_lk); if (!handler_registered) { - ret |= rte_intr_callback_register(&intr_handle, + ret = rte_intr_callback_register(&intr_handle, eal_alarm_callback, NULL); - handler_registered = (ret == 0) ? 1 : 0; + if (ret == 0) + handler_registered = 1; + else + /* not fatal, callback can be registered later */ + ret = 0; } if (LIST_EMPTY(&alarm_list)) -- 2.21.0