Commit 3d09274c authored by David S. Miller's avatar David S. Miller

sctp: Use skb_queue_walk_safe() and skb_queue_split_tail_init().

Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 1d4a31dd
...@@ -406,10 +406,7 @@ struct sctp_association *sctp_id2assoc(struct sock *sk, sctp_assoc_t id); ...@@ -406,10 +406,7 @@ struct sctp_association *sctp_id2assoc(struct sock *sk, sctp_assoc_t id);
/* A macro to walk a list of skbs. */ /* A macro to walk a list of skbs. */
#define sctp_skb_for_each(pos, head, tmp) \ #define sctp_skb_for_each(pos, head, tmp) \
for (pos = (head)->next;\ skb_queue_walk_safe(head, pos, tmp)
tmp = (pos)->next, pos != ((struct sk_buff *)(head));\
pos = tmp)
/* A helper to append an entire skb list (list) to another (head). */ /* A helper to append an entire skb list (list) to another (head). */
static inline void sctp_skb_list_tail(struct sk_buff_head *list, static inline void sctp_skb_list_tail(struct sk_buff_head *list,
...@@ -420,10 +417,7 @@ static inline void sctp_skb_list_tail(struct sk_buff_head *list, ...@@ -420,10 +417,7 @@ static inline void sctp_skb_list_tail(struct sk_buff_head *list,
sctp_spin_lock_irqsave(&head->lock, flags); sctp_spin_lock_irqsave(&head->lock, flags);
sctp_spin_lock(&list->lock); sctp_spin_lock(&list->lock);
list_splice((struct list_head *)list, (struct list_head *)head->prev); skb_queue_splice_tail_init(list, head);
head->qlen += list->qlen;
list->qlen = 0;
sctp_spin_unlock(&list->lock); sctp_spin_unlock(&list->lock);
sctp_spin_unlock_irqrestore(&head->lock, flags); sctp_spin_unlock_irqrestore(&head->lock, flags);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment