* [dpdk-stable] [PATCH] eal/linux: fix return after alarm registration failure
@ 2019-06-26 10:40 Thomas Monjalon
2019-06-26 11:20 ` David Marchand
2019-06-26 14:02 ` [dpdk-stable] [PATCH v2] " Thomas Monjalon
0 siblings, 2 replies; 5+ messages in thread
From: Thomas Monjalon @ 2019-06-26 10:40 UTC (permalink / raw)
To: dev; +Cc: david.marchand, stable
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: stable@dpdk.org
Signed-off-by: Thomas Monjalon <thomas@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
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [dpdk-stable] [PATCH] eal/linux: fix return after alarm registration failure
2019-06-26 10:40 [dpdk-stable] [PATCH] eal/linux: fix return after alarm registration failure Thomas Monjalon
@ 2019-06-26 11:20 ` David Marchand
2019-06-26 14:02 ` [dpdk-stable] [PATCH v2] " Thomas Monjalon
1 sibling, 0 replies; 5+ messages in thread
From: David Marchand @ 2019-06-26 11:20 UTC (permalink / raw)
To: Thomas Monjalon; +Cc: dev, dpdk stable
On Wed, Jun 26, 2019 at 12:41 PM Thomas Monjalon <thomas@monjalon.net>
wrote:
> 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: stable@dpdk.org
>
> Signed-off-by: Thomas Monjalon <thomas@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))
>
Well, then it means that you don't want to touch ret at all.
How about:
if (rte_intr_callback_register(&intr_handle,
eal_alarm_callback, NULL) == 0)
handler_registered = 1;
?
--
David Marchand
^ permalink raw reply [flat|nested] 5+ messages in thread
* [dpdk-stable] [PATCH v2] eal/linux: fix return after alarm registration failure
2019-06-26 10:40 [dpdk-stable] [PATCH] eal/linux: fix return after alarm registration failure Thomas Monjalon
2019-06-26 11:20 ` David Marchand
@ 2019-06-26 14:02 ` Thomas Monjalon
2019-06-26 23:09 ` [dpdk-stable] [dpdk-dev] " Stephen Hemminger
1 sibling, 1 reply; 5+ messages in thread
From: Thomas Monjalon @ 2019-06-26 14:02 UTC (permalink / raw)
To: dev; +Cc: david.marchand, stable
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 <thomas@monjalon.net>
---
v2: do not use variable ret
---
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 840ede780..0924c9205 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.21.0
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [dpdk-stable] [dpdk-dev] [PATCH v2] eal/linux: fix return after alarm registration failure
2019-06-26 14:02 ` [dpdk-stable] [PATCH v2] " Thomas Monjalon
@ 2019-06-26 23:09 ` Stephen Hemminger
2019-06-27 15:25 ` Thomas Monjalon
0 siblings, 1 reply; 5+ messages in thread
From: Stephen Hemminger @ 2019-06-26 23:09 UTC (permalink / raw)
To: Thomas Monjalon; +Cc: dev, david.marchand, stable
On Wed, 26 Jun 2019 16:02:34 +0200
Thomas Monjalon <thomas@monjalon.net> wrote:
> 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 <thomas@monjalon.net>
> ---
> v2: do not use variable ret
Acked-by: Stephen Hemminger <stephen@networkplumber.org>
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [dpdk-stable] [dpdk-dev] [PATCH v2] eal/linux: fix return after alarm registration failure
2019-06-26 23:09 ` [dpdk-stable] [dpdk-dev] " Stephen Hemminger
@ 2019-06-27 15:25 ` Thomas Monjalon
0 siblings, 0 replies; 5+ messages in thread
From: Thomas Monjalon @ 2019-06-27 15:25 UTC (permalink / raw)
To: Stephen Hemminger, dev, david.marchand; +Cc: stable
27/06/2019 01:09, Stephen Hemminger:
> On Wed, 26 Jun 2019 16:02:34 +0200
> Thomas Monjalon <thomas@monjalon.net> wrote:
>
> > 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 <thomas@monjalon.net>
> > ---
> > v2: do not use variable ret
>
> Acked-by: Stephen Hemminger <stephen@networkplumber.org>
Applied
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2019-06-27 15:25 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-06-26 10:40 [dpdk-stable] [PATCH] eal/linux: fix return after alarm registration failure Thomas Monjalon
2019-06-26 11:20 ` David Marchand
2019-06-26 14:02 ` [dpdk-stable] [PATCH v2] " Thomas Monjalon
2019-06-26 23:09 ` [dpdk-stable] [dpdk-dev] " Stephen Hemminger
2019-06-27 15:25 ` Thomas Monjalon
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).