diff options
| author | Eric Dumazet <edumazet@google.com> | 2013-12-20 14:29:08 -0800 | 
|---|---|---|
| committer | David S. Miller <davem@davemloft.net> | 2013-12-21 22:28:16 -0500 | 
| commit | 289dccbe141e01efc5968fe39a0993c9f611375e (patch) | |
| tree | 3582a2dad5279b0a7c39abc75f5517e5ca427273 | |
| parent | 1b6176cca302e2eebd2b5ce5c512282a548adbe0 (diff) | |
net: use kfree_skb_list() helper
We can use kfree_skb_list() instead of open coding it.
Signed-off-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
| -rw-r--r-- | net/core/dev.c | 18 | ||||
| -rw-r--r-- | 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 c482fe8abf87..973c23656673 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 2b6b863f51f2..eb96c2c22400 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); | 
