summaryrefslogtreecommitdiff
path: root/include/linux/list.h
diff options
context:
space:
mode:
authorMaxime Ripard <mripard@kernel.org>2024-01-29 14:20:23 +0100
committerMaxime Ripard <mripard@kernel.org>2024-01-29 14:20:23 +0100
commit4db102dcb0396a4ccf89b1eac0f4eb3fd167a080 (patch)
treeea47469abffb236c5ba305c8a406e1f8209c6f34 /include/linux/list.h
parentaeb262c353354eab81ab0d3242afa70984b7dc34 (diff)
parent6613476e225e090cc9aad49be7fa504e290dd33d (diff)
downloadlinux-4db102dcb0396a4ccf89b1eac0f4eb3fd167a080.tar.gz
linux-4db102dcb0396a4ccf89b1eac0f4eb3fd167a080.tar.bz2
linux-4db102dcb0396a4ccf89b1eac0f4eb3fd167a080.zip
Merge drm/drm-next into drm-misc-next
Kickstart 6.9 development cycle. Signed-off-by: Maxime Ripard <mripard@kernel.org>
Diffstat (limited to 'include/linux/list.h')
-rw-r--r--include/linux/list.h20
1 files changed, 20 insertions, 0 deletions
diff --git a/include/linux/list.h b/include/linux/list.h
index 1837caedf723..059aa1fff41e 100644
--- a/include/linux/list.h
+++ b/include/linux/list.h
@@ -1119,6 +1119,26 @@ static inline void hlist_move_list(struct hlist_head *old,
old->first = NULL;
}
+/**
+ * hlist_splice_init() - move all entries from one list to another
+ * @from: hlist_head from which entries will be moved
+ * @last: last entry on the @from list
+ * @to: hlist_head to which entries will be moved
+ *
+ * @to can be empty, @from must contain at least @last.
+ */
+static inline void hlist_splice_init(struct hlist_head *from,
+ struct hlist_node *last,
+ struct hlist_head *to)
+{
+ if (to->first)
+ to->first->pprev = &last->next;
+ last->next = to->first;
+ to->first = from->first;
+ from->first->pprev = &to->first;
+ from->first = NULL;
+}
+
#define hlist_entry(ptr, type, member) container_of(ptr,type,member)
#define hlist_for_each(pos, head) \