summaryrefslogtreecommitdiff
path: root/include/linux/list.h
diff options
context:
space:
mode:
authorLucas De Marchi2024-01-22 15:10:10 -0800
committerLucas De Marchi2024-01-22 15:10:10 -0800
commitbe3382ecdf317f005e7d47356d0a9256cc36dd88 (patch)
tree40ee42db6c5c510d998c23696a27254f22289094 /include/linux/list.h
parentf6bf0424cadc27d7cf6a049d2db960e4b52fa513 (diff)
parent6613476e225e090cc9aad49be7fa504e290dd33d (diff)
Merge drm/drm-next into drm-xe-next
Sync to v6.8-rc1. Signed-off-by: Lucas De Marchi <lucas.demarchi@intel.com>
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) \