Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 289dccbe authored by Eric Dumazet's avatar Eric Dumazet Committed by David S. Miller
Browse files

net: use kfree_skb_list() helper



We can use kfree_skb_list() instead of open coding it.

Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 1b6176cc
Loading
Loading
Loading
Loading
+3 −15
Original line number Diff line number Diff line
@@ -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;
}
+1 −4
Original line number Diff line number Diff line
@@ -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);