From: Ying Xue Date: Wed, 26 Nov 2014 03:41:51 +0000 (+0800) Subject: tipc: use skb_queue_walk_safe marco to simplify link_prepare_wakeup routine X-Git-Tag: firefly_0821_release~176^2~2717^2~110^2~4 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=58d78b328a70f4b5ed1c00010499aaedb715ea5b;p=firefly-linux-kernel-4.4.55.git tipc: use skb_queue_walk_safe marco to simplify link_prepare_wakeup routine Signed-off-by: Ying Xue Reviewed-by: Jon Maloy Signed-off-by: David S. Miller --- diff --git a/net/tipc/link.c b/net/tipc/link.c index 8eb885eb1433..ddee498e74bc 100644 --- a/net/tipc/link.c +++ b/net/tipc/link.c @@ -367,15 +367,15 @@ static bool link_schedule_user(struct tipc_link *link, u32 oport, */ static void link_prepare_wakeup(struct tipc_link *link) { - struct sk_buff_head *wq = &link->waiting_sks; - struct sk_buff *buf; uint pend_qsz = link->out_queue_size; + struct sk_buff *skb, *tmp; - for (buf = skb_peek(wq); buf; buf = skb_peek(wq)) { - if (pend_qsz >= link->queue_limit[TIPC_SKB_CB(buf)->chain_imp]) + skb_queue_walk_safe(&link->waiting_sks, skb, tmp) { + if (pend_qsz >= link->queue_limit[TIPC_SKB_CB(skb)->chain_imp]) break; - pend_qsz += TIPC_SKB_CB(buf)->chain_sz; - __skb_queue_tail(&link->owner->waiting_sks, __skb_dequeue(wq)); + pend_qsz += TIPC_SKB_CB(skb)->chain_sz; + __skb_unlink(skb, &link->waiting_sks); + __skb_queue_tail(&link->owner->waiting_sks, skb); } }