[PATCH] backports: add rb_tree_cached
Johannes Berg <[email protected]>
| Newsgroups | org.kernel.vger.backports |
|---|---|
| Message-ID | <20210715180046.6635727a182b.Id747625a81c1c87ae14145eff93436b94a122980@changeid> |
From: Johannes Berg <[email protected]> We just map them to the normal rb_tree, losing the efficiency gain in this case. ticket=none Signed-off-by: Johannes Berg <[email protected]> --- backport/backport-include/linux/rbtree.h | 25 ++++++++++++++++++++++++ patches/0104-rb-tree-cached.cocci | 5 +++++ 2 files changed, 30 insertions(+) create mode 100644 backport/backport-include/linux/rbtree.h create mode 100644 patches/0104-rb-tree-cached.cocci diff --git a/backport/backport-include/linux/rbtree.h b/backport/backport-include/linux/rbtree.h new file mode 100644 index 000000000000..feccff36e7dd --- /dev/null +++ b/backport/backport-include/linux/rbtree.h @@ -0,0 +1,25 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ +/* + * Copyright (C) 2021 Intel Corporation + */ +#ifndef __BACKPORT_RBTREE_H +#define __BACKPORT_RBTREE_H +#include_next <linux/rbtree.h> + +#if LINUX_VERSION_IS_LESS(4,14,0) +#define rb_root_cached rb_root +#define rb_first_cached rb_first +static inline void rb_insert_color_cached(struct rb_node *node, + struct rb_root_cached *root, + bool leftmost) +{ + rb_insert_color(node, root); +} +#define rb_erase_cached rb_erase +#define RB_ROOT_CACHED RB_ROOT +#define rb_root_node(root) (root)->rb_node +#else +#define rb_root_node(root) (root)->rb_root.rb_node +#endif + +#endif /* __BACKPORT_RBTREE_H */ diff --git a/patches/0104-rb-tree-cached.cocci b/patches/0104-rb-tree-cached.cocci new file mode 100644 index 000000000000..a8388c847a5a --- /dev/null +++ b/patches/0104-rb-tree-cached.cocci @@ -0,0 +1,5 @@ +@@ +struct rb_root_cached *root; +@@ +-root->rb_root.rb_node ++rb_root_node(root) -- 2.31.1 -- To unsubscribe from this list: send the line "unsubscribe backports" in