Lines Matching refs:entry
96 extern bool __list_valid_slowpath __list_del_entry_valid_or_report(struct list_head *entry);
106 static __always_inline bool __list_del_entry_valid(struct list_head *entry) in __list_del_entry_valid() argument
111 struct list_head *prev = entry->prev; in __list_del_entry_valid()
112 struct list_head *next = entry->next; in __list_del_entry_valid()
119 if (likely(prev->next == entry && next->prev == entry)) in __list_del_entry_valid()
124 ret &= __list_del_entry_valid_or_report(entry); in __list_del_entry_valid()
134 static inline bool __list_del_entry_valid(struct list_head *entry) in __list_del_entry_valid() argument
207 static inline void __list_del_clearprev(struct list_head *entry) in __list_del_clearprev() argument
209 __list_del(entry->prev, entry->next); in __list_del_clearprev()
210 entry->prev = NULL; in __list_del_clearprev()
213 static inline void __list_del_entry(struct list_head *entry) in __list_del_entry() argument
215 if (!__list_del_entry_valid(entry)) in __list_del_entry()
218 __list_del(entry->prev, entry->next); in __list_del_entry()
227 static inline void list_del(struct list_head *entry) in list_del() argument
229 __list_del_entry(entry); in list_del()
230 entry->next = LIST_POISON1; in list_del()
231 entry->prev = LIST_POISON2; in list_del()
285 static inline void list_del_init(struct list_head *entry) in list_del_init() argument
287 __list_del_entry(entry); in list_del_init()
288 INIT_LIST_HEAD(entry); in list_del_init()
387 static inline void list_del_init_careful(struct list_head *entry) in list_del_init_careful() argument
389 __list_del_entry(entry); in list_del_init_careful()
390 WRITE_ONCE(entry->prev, entry); in list_del_init_careful()
391 smp_store_release(&entry->next, entry); in list_del_init_careful()
455 struct list_head *head, struct list_head *entry) in __list_cut_position() argument
457 struct list_head *new_first = entry->next; in __list_cut_position()
460 list->prev = entry; in __list_cut_position()
461 entry->next = list; in __list_cut_position()
481 struct list_head *head, struct list_head *entry) in list_cut_position() argument
485 if (list_is_singular(head) && !list_is_head(entry, head) && (entry != head->next)) in list_cut_position()
487 if (list_is_head(entry, head)) in list_cut_position()
490 __list_cut_position(list, head, entry); in list_cut_position()
509 struct list_head *entry) in list_cut_before() argument
511 if (head->next == entry) { in list_cut_before()
517 list->prev = entry->prev; in list_cut_before()
519 head->next = entry; in list_cut_before()
520 entry->prev = head; in list_cut_before()