|
@@ -4,7 +4,7 @@
|
|
|
#include <linux/types.h>
|
|
|
#include <linux/stddef.h>
|
|
|
#include <linux/poison.h>
|
|
|
-#include <linux/prefetch.h>
|
|
|
+#include <linux/const.h>
|
|
|
|
|
|
/*
|
|
|
* Simple doubly linked list implementation.
|
|
@@ -367,18 +367,15 @@ static inline void list_splice_tail_init(struct list_head *list,
|
|
|
* @head: the head for your list.
|
|
|
*/
|
|
|
#define list_for_each(pos, head) \
|
|
|
- for (pos = (head)->next; prefetch(pos->next), pos != (head); \
|
|
|
- pos = pos->next)
|
|
|
+ for (pos = (head)->next; pos != (head); pos = pos->next)
|
|
|
|
|
|
/**
|
|
|
* __list_for_each - iterate over a list
|
|
|
* @pos: the &struct list_head to use as a loop cursor.
|
|
|
* @head: the head for your list.
|
|
|
*
|
|
|
- * This variant differs from list_for_each() in that it's the
|
|
|
- * simplest possible list iteration code, no prefetching is done.
|
|
|
- * Use this for code that knows the list to be very short (empty
|
|
|
- * or 1 entry) most of the time.
|
|
|
+ * This variant doesn't differ from list_for_each() any more.
|
|
|
+ * We don't do prefetching in either case.
|
|
|
*/
|
|
|
#define __list_for_each(pos, head) \
|
|
|
for (pos = (head)->next; pos != (head); pos = pos->next)
|
|
@@ -389,8 +386,7 @@ static inline void list_splice_tail_init(struct list_head *list,
|
|
|
* @head: the head for your list.
|
|
|
*/
|
|
|
#define list_for_each_prev(pos, head) \
|
|
|
- for (pos = (head)->prev; prefetch(pos->prev), pos != (head); \
|
|
|
- pos = pos->prev)
|
|
|
+ for (pos = (head)->prev; pos != (head); pos = pos->prev)
|
|
|
|
|
|
/**
|
|
|
* list_for_each_safe - iterate over a list safe against removal of list entry
|
|
@@ -410,7 +406,7 @@ static inline void list_splice_tail_init(struct list_head *list,
|
|
|
*/
|
|
|
#define list_for_each_prev_safe(pos, n, head) \
|
|
|
for (pos = (head)->prev, n = pos->prev; \
|
|
|
- prefetch(pos->prev), pos != (head); \
|
|
|
+ pos != (head); \
|
|
|
pos = n, n = pos->prev)
|
|
|
|
|
|
/**
|
|
@@ -421,7 +417,7 @@ static inline void list_splice_tail_init(struct list_head *list,
|
|
|
*/
|
|
|
#define list_for_each_entry(pos, head, member) \
|
|
|
for (pos = list_entry((head)->next, typeof(*pos), member); \
|
|
|
- prefetch(pos->member.next), &pos->member != (head); \
|
|
|
+ &pos->member != (head); \
|
|
|
pos = list_entry(pos->member.next, typeof(*pos), member))
|
|
|
|
|
|
/**
|
|
@@ -432,7 +428,7 @@ static inline void list_splice_tail_init(struct list_head *list,
|
|
|
*/
|
|
|
#define list_for_each_entry_reverse(pos, head, member) \
|
|
|
for (pos = list_entry((head)->prev, typeof(*pos), member); \
|
|
|
- prefetch(pos->member.prev), &pos->member != (head); \
|
|
|
+ &pos->member != (head); \
|
|
|
pos = list_entry(pos->member.prev, typeof(*pos), member))
|
|
|
|
|
|
/**
|
|
@@ -457,7 +453,7 @@ static inline void list_splice_tail_init(struct list_head *list,
|
|
|
*/
|
|
|
#define list_for_each_entry_continue(pos, head, member) \
|
|
|
for (pos = list_entry(pos->member.next, typeof(*pos), member); \
|
|
|
- prefetch(pos->member.next), &pos->member != (head); \
|
|
|
+ &pos->member != (head); \
|
|
|
pos = list_entry(pos->member.next, typeof(*pos), member))
|
|
|
|
|
|
/**
|
|
@@ -471,7 +467,7 @@ static inline void list_splice_tail_init(struct list_head *list,
|
|
|
*/
|
|
|
#define list_for_each_entry_continue_reverse(pos, head, member) \
|
|
|
for (pos = list_entry(pos->member.prev, typeof(*pos), member); \
|
|
|
- prefetch(pos->member.prev), &pos->member != (head); \
|
|
|
+ &pos->member != (head); \
|
|
|
pos = list_entry(pos->member.prev, typeof(*pos), member))
|
|
|
|
|
|
/**
|
|
@@ -483,7 +479,7 @@ static inline void list_splice_tail_init(struct list_head *list,
|
|
|
* Iterate over list of given type, continuing from current position.
|
|
|
*/
|
|
|
#define list_for_each_entry_from(pos, head, member) \
|
|
|
- for (; prefetch(pos->member.next), &pos->member != (head); \
|
|
|
+ for (; &pos->member != (head); \
|
|
|
pos = list_entry(pos->member.next, typeof(*pos), member))
|
|
|
|
|
|
/**
|