Loading lib/timerqueue.c +9 −19 Original line number Diff line number Diff line Loading @@ -14,6 +14,14 @@ #include <linux/rbtree.h> #include <linux/export.h> #define __node_2_tq(_n) \ rb_entry((_n), struct timerqueue_node, node) static inline bool __timerqueue_less(struct rb_node *a, const struct rb_node *b) { return __node_2_tq(a)->expires < __node_2_tq(b)->expires; } /** * timerqueue_add - Adds timer to timerqueue. * Loading @@ -26,28 +34,10 @@ */ bool timerqueue_add(struct timerqueue_head *head, struct timerqueue_node *node) { struct rb_node **p = &head->rb_root.rb_root.rb_node; struct rb_node *parent = NULL; struct timerqueue_node *ptr; bool leftmost = true; /* Make sure we don't add nodes that are already added */ WARN_ON_ONCE(!RB_EMPTY_NODE(&node->node)); while (*p) { parent = *p; ptr = rb_entry(parent, struct timerqueue_node, node); if (node->expires < ptr->expires) { p = &(*p)->rb_left; } else { p = &(*p)->rb_right; leftmost = false; } } rb_link_node(&node->node, parent, p); rb_insert_color_cached(&node->node, &head->rb_root, leftmost); return leftmost; return rb_add_cached(&node->node, &head->rb_root, __timerqueue_less); } EXPORT_SYMBOL_GPL(timerqueue_add); Loading Loading
lib/timerqueue.c +9 −19 Original line number Diff line number Diff line Loading @@ -14,6 +14,14 @@ #include <linux/rbtree.h> #include <linux/export.h> #define __node_2_tq(_n) \ rb_entry((_n), struct timerqueue_node, node) static inline bool __timerqueue_less(struct rb_node *a, const struct rb_node *b) { return __node_2_tq(a)->expires < __node_2_tq(b)->expires; } /** * timerqueue_add - Adds timer to timerqueue. * Loading @@ -26,28 +34,10 @@ */ bool timerqueue_add(struct timerqueue_head *head, struct timerqueue_node *node) { struct rb_node **p = &head->rb_root.rb_root.rb_node; struct rb_node *parent = NULL; struct timerqueue_node *ptr; bool leftmost = true; /* Make sure we don't add nodes that are already added */ WARN_ON_ONCE(!RB_EMPTY_NODE(&node->node)); while (*p) { parent = *p; ptr = rb_entry(parent, struct timerqueue_node, node); if (node->expires < ptr->expires) { p = &(*p)->rb_left; } else { p = &(*p)->rb_right; leftmost = false; } } rb_link_node(&node->node, parent, p); rb_insert_color_cached(&node->node, &head->rb_root, leftmost); return leftmost; return rb_add_cached(&node->node, &head->rb_root, __timerqueue_less); } EXPORT_SYMBOL_GPL(timerqueue_add); Loading