diff options
author | James Chapman <jchapman@katalix.com> | 2007-04-30 00:07:31 -0700 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2007-04-30 00:07:31 -0700 |
commit | 46f8914e53c28d0716c586e08a7c819d8ebb9d54 (patch) | |
tree | 722beec8d5a83d6c13b455e69ab567197e065c55 /include | |
parent | 04b090d50c88ac8e5ec9c2e985bb65bd153893aa (diff) | |
download | blackbird-op-linux-46f8914e53c28d0716c586e08a7c819d8ebb9d54.tar.gz blackbird-op-linux-46f8914e53c28d0716c586e08a7c819d8ebb9d54.zip |
[SKB]: Introduce skb_queue_walk_safe()
This patch provides a method for walking skb lists while inserting or
removing skbs from the list.
Signed-off-by: James Chapman <jchapman@katalix.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include')
-rw-r--r-- | include/linux/skbuff.h | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h index 2694cb3ca763..253a2b9be9d6 100644 --- a/include/linux/skbuff.h +++ b/include/linux/skbuff.h @@ -1471,6 +1471,11 @@ static inline int pskb_trim_rcsum(struct sk_buff *skb, unsigned int len) prefetch(skb->next), (skb != (struct sk_buff *)(queue)); \ skb = skb->next) +#define skb_queue_walk_safe(queue, skb, tmp) \ + for (skb = (queue)->next, 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)); \ |