From 289dccbe141e01efc5968fe39a0993c9f611375e Mon Sep 17 00:00:00 2001 From: Eric Dumazet Date: Fri, 20 Dec 2013 14:29:08 -0800 Subject: [PATCH] net: use kfree_skb_list() helper We can use kfree_skb_list() instead of open coding it. Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller --- net/core/dev.c | 18 +++--------------- net/core/skbuff.c | 5 +---- 2 files changed, 4 insertions(+), 19 deletions(-) diff --git a/net/core/dev.c b/net/core/dev.c index c482fe8..973c236 100644 --- a/net/core/dev.c +++ b/net/core/dev.c @@ -2454,13 +2454,8 @@ static void dev_gso_skb_destructor(struct sk_buff *skb) { struct dev_gso_cb *cb; - do { - struct sk_buff *nskb = skb->next; - - skb->next = nskb->next; - nskb->next = NULL; - kfree_skb(nskb); - } while (skb->next); + kfree_skb_list(skb->next); + skb->next = NULL; cb = DEV_GSO_CB(skb); if (cb->destructor) @@ -4240,17 +4235,10 @@ EXPORT_SYMBOL(netif_napi_add); void netif_napi_del(struct napi_struct *napi) { - struct sk_buff *skb, *next; - list_del_init(&napi->dev_list); napi_free_frags(napi); - for (skb = napi->gro_list; skb; skb = next) { - next = skb->next; - skb->next = NULL; - kfree_skb(skb); - } - + kfree_skb_list(napi->gro_list); napi->gro_list = NULL; napi->gro_count = 0; } diff --git a/net/core/skbuff.c b/net/core/skbuff.c index 2b6b863..eb96c2c 100644 --- a/net/core/skbuff.c +++ b/net/core/skbuff.c @@ -2981,10 +2981,7 @@ perform_csum_check: return segs; err: - while ((skb = segs)) { - segs = skb->next; - kfree_skb(skb); - } + kfree_skb_list(segs); return ERR_PTR(err); } EXPORT_SYMBOL_GPL(skb_segment); -- 2.7.4