diff options
Diffstat (limited to 'net/core/skbuff.c')
| -rw-r--r-- | net/core/skbuff.c | 20 | 
1 files changed, 12 insertions, 8 deletions
| diff --git a/net/core/skbuff.c b/net/core/skbuff.c index cfd777bd6bd0..1c1738cc4538 100644 --- a/net/core/skbuff.c +++ b/net/core/skbuff.c @@ -483,15 +483,8 @@ EXPORT_SYMBOL(skb_add_rx_frag);  static void skb_drop_list(struct sk_buff **listp)  { -	struct sk_buff *list = *listp; - +	kfree_skb_list(*listp);  	*listp = NULL; - -	do { -		struct sk_buff *this = list; -		list = list->next; -		kfree_skb(this); -	} while (list);  }  static inline void skb_drop_fraglist(struct sk_buff *skb) @@ -651,6 +644,17 @@ void kfree_skb(struct sk_buff *skb)  }  EXPORT_SYMBOL(kfree_skb); +void kfree_skb_list(struct sk_buff *segs) +{ +	while (segs) { +		struct sk_buff *next = segs->next; + +		kfree_skb(segs); +		segs = next; +	} +} +EXPORT_SYMBOL(kfree_skb_list); +  /**   *	skb_tx_error - report an sk_buff xmit error   *	@skb: buffer that triggered an error |