From 75683290e5ed7846b3e37d927efca68974fb3f20 Mon Sep 17 00:00:00 2001 From: Thomas Monjalon Date: Wed, 26 Jun 2019 12:12:00 +0200 Subject: [PATCH] eal/linux: fix return after alarm registration failure 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 not set anymore to be consistent with the behaviour. Fixes: af75078fece3 ("first public release") Cc: stable@dpdk.org Signed-off-by: Thomas Monjalon Reviewed-by: David Marchand Acked-by: Stephen Hemminger --- lib/librte_eal/linux/eal/eal_alarm.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/lib/librte_eal/linux/eal/eal_alarm.c b/lib/librte_eal/linux/eal/eal_alarm.c index 840ede7806..0924c9205c 100644 --- a/lib/librte_eal/linux/eal/eal_alarm.c +++ b/lib/librte_eal/linux/eal/eal_alarm.c @@ -137,9 +137,10 @@ 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, - eal_alarm_callback, NULL); - handler_registered = (ret == 0) ? 1 : 0; + /* registration can fail, callback can be registered later */ + if (rte_intr_callback_register(&intr_handle, + eal_alarm_callback, NULL) == 0) + handler_registered = 1; } if (LIST_EMPTY(&alarm_list)) -- 2.20.1