[dpdk-dev] [PATCH] timer: fix incorrect pending-list manipulation
Hiroyuki Mikita
h.mikita89 at gmail.com
Sun Jul 17 16:35:39 CEST 2016
This commit fixes incorrect pending-list manipulation
when getting list of expired timers in rte_timer_manage().
When timer_get_prev_entries() sets pending_head on prev,
the pending-list is broken.
The next of pending_head always becomes NULL.
In this depth level, it is not need to manipulate the list.
Signed-off-by: Hiroyuki Mikita <h.mikita89 at gmail.com>
---
lib/librte_timer/rte_timer.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/lib/librte_timer/rte_timer.c b/lib/librte_timer/rte_timer.c
index 3dcdab5..7457d32 100644
--- a/lib/librte_timer/rte_timer.c
+++ b/lib/librte_timer/rte_timer.c
@@ -543,6 +543,8 @@ void rte_timer_manage(void)
/* break the existing list at current time point */
timer_get_prev_entries(cur_time, lcore_id, prev);
for (i = priv_timer[lcore_id].curr_skiplist_depth -1; i >= 0; i--) {
+ if (prev[i] == &priv_timer[lcore_id].pending_head)
+ continue;
priv_timer[lcore_id].pending_head.sl_next[i] =
prev[i]->sl_next[i];
if (prev[i]->sl_next[i] == NULL)
--
2.7.4
More information about the dev
mailing list