diff options
Diffstat (limited to 'lib/timerqueue.c')
-rw-r--r-- | lib/timerqueue.c | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/lib/timerqueue.c b/lib/timerqueue.c index adc6ee0a5126..4a720ed4fdaf 100644 --- a/lib/timerqueue.c +++ b/lib/timerqueue.c | |||
@@ -80,8 +80,7 @@ bool timerqueue_del(struct timerqueue_head *head, struct timerqueue_node *node) | |||
80 | if (head->next == node) { | 80 | if (head->next == node) { |
81 | struct rb_node *rbn = rb_next(&node->node); | 81 | struct rb_node *rbn = rb_next(&node->node); |
82 | 82 | ||
83 | head->next = rbn ? | 83 | head->next = rb_entry_safe(rbn, struct timerqueue_node, node); |
84 | rb_entry(rbn, struct timerqueue_node, node) : NULL; | ||
85 | } | 84 | } |
86 | rb_erase(&node->node, &head->head); | 85 | rb_erase(&node->node, &head->head); |
87 | RB_CLEAR_NODE(&node->node); | 86 | RB_CLEAR_NODE(&node->node); |