diff options
| author | Dmitry Torokhov <dmitry.torokhov@gmail.com> | 2026-06-22 23:10:08 -0700 |
|---|---|---|
| committer | Dmitry Torokhov <dmitry.torokhov@gmail.com> | 2026-06-22 23:10:08 -0700 |
| commit | 7a0e692a0381254b2f77c54dec100cd3325a6fdf (patch) | |
| tree | 2d2ce96c3471a02166323e88cd7ccab1d43b1cd4 /lib/timerqueue.c | |
| parent | fb402386af4cdce108ff991a796386de55439735 (diff) | |
| parent | a6ac4e24c1a8a533bb61035184fdcc7eede4cc8d (diff) | |
| download | linux-7a0e692a0381254b2f77c54dec100cd3325a6fdf.tar.gz linux-7a0e692a0381254b2f77c54dec100cd3325a6fdf.zip | |
Merge branch 'next' into for-linus
Prepare input updates for 7.2 merge window.
Diffstat (limited to 'lib/timerqueue.c')
| -rw-r--r-- | lib/timerqueue.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/lib/timerqueue.c b/lib/timerqueue.c index cdb9c7658478..e2a1e08cb4bd 100644 --- a/lib/timerqueue.c +++ b/lib/timerqueue.c @@ -82,3 +82,17 @@ struct timerqueue_node *timerqueue_iterate_next(struct timerqueue_node *node) return container_of(next, struct timerqueue_node, node); } EXPORT_SYMBOL_GPL(timerqueue_iterate_next); + +#define __node_2_tq_linked(_n) \ + container_of(rb_entry((_n), struct rb_node_linked, node), struct timerqueue_linked_node, node) + +static __always_inline bool __tq_linked_less(struct rb_node *a, const struct rb_node *b) +{ + return __node_2_tq_linked(a)->expires < __node_2_tq_linked(b)->expires; +} + +bool timerqueue_linked_add(struct timerqueue_linked_head *head, struct timerqueue_linked_node *node) +{ + return rb_add_linked(&node->node, &head->rb_root, __tq_linked_less); +} +EXPORT_SYMBOL_GPL(timerqueue_linked_add); |
