summaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/i915/i915_list_util.h
blob: 4e515dc8a3e08651481b21b465be5c75db7a5d22 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
/* SPDX-License-Identifier: MIT */
/* Copyright © 2025 Intel Corporation */

#ifndef __I915_LIST_UTIL_H__
#define __I915_LIST_UTIL_H__

#include <linux/list.h>
#include <asm/rwonce.h>

static inline void __list_del_many(struct list_head *head,
				   struct list_head *first)
{
	first->prev = head;
	WRITE_ONCE(head->next, first);
}

static inline int list_is_last_rcu(const struct list_head *list,
				   const struct list_head *head)
{
	return READ_ONCE(list->next) == head;
}

#endif /* __I915_LIST_UTIL_H__ */