diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/linux/list.h | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/include/linux/list.h b/include/linux/list.h index ad9dcb9e3375..b0cf0135fe3e 100644 --- a/include/linux/list.h +++ b/include/linux/list.h | |||
@@ -478,6 +478,18 @@ static inline void list_splice_init_rcu(struct list_head *list, | |||
478 | pos = n, n = pos->next) | 478 | pos = n, n = pos->next) |
479 | 479 | ||
480 | /** | 480 | /** |
481 | * list_for_each_prev_safe - iterate over a list backwards safe against removal | ||
482 | of list entry | ||
483 | * @pos: the &struct list_head to use as a loop cursor. | ||
484 | * @n: another &struct list_head to use as temporary storage | ||
485 | * @head: the head for your list. | ||
486 | */ | ||
487 | #define list_for_each_prev_safe(pos, n, head) \ | ||
488 | for (pos = (head)->prev, n = pos->prev; \ | ||
489 | prefetch(pos->prev), pos != (head); \ | ||
490 | pos = n, n = pos->prev) | ||
491 | |||
492 | /** | ||
481 | * list_for_each_entry - iterate over list of given type | 493 | * list_for_each_entry - iterate over list of given type |
482 | * @pos: the type * to use as a loop cursor. | 494 | * @pos: the type * to use as a loop cursor. |
483 | * @head: the head for your list. | 495 | * @head: the head for your list. |