net: Add skb_queue_walk_from() and skb_queue_walk_from_safe().
authorDavid S. Miller <davem@davemloft.net>
Tue, 23 Sep 2008 07:49:44 +0000 (00:49 -0700)
committerDavid S. Miller <davem@davemloft.net>
Tue, 23 Sep 2008 07:49:44 +0000 (00:49 -0700)
These will be used by TCP write queue handling and elsewhere.

Signed-off-by: David S. Miller <davem@davemloft.net>
include/linux/skbuff.h

index d2f1778877d74066bce0b06cb163a5f97997177a..a19ea43fea027d76ae6a27d22bcc6df6a35a2401 100644 (file)
@@ -1571,6 +1571,15 @@ static inline int pskb_trim_rcsum(struct sk_buff *skb, unsigned int len)
                     skb != (struct sk_buff *)(queue);                          \
                     skb = tmp, tmp = skb->next)
 
+#define skb_queue_walk_from(queue, skb)                                                \
+               for (; prefetch(skb->next), (skb != (struct sk_buff *)(queue)); \
+                    skb = skb->next)
+
+#define skb_queue_walk_from_safe(queue, skb, tmp)                              \
+               for (tmp = skb->next;                                           \
+                    skb != (struct sk_buff *)(queue);                          \
+                    skb = tmp, tmp = skb->next)
+
 #define skb_queue_reverse_walk(queue, skb) \
                for (skb = (queue)->prev;                                       \
                     prefetch(skb->prev), (skb != (struct sk_buff *)(queue));   \