From: Eric Dumazet Date: Sun, 20 Feb 2022 15:40:52 +0000 (-0800) Subject: net: __pskb_pull_tail() & pskb_carve_frag_list() drop_monitor friends X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=8af34e3dbca09fbdf01e8fb896ffe540dfadbb9c;p=GitHub%2FLineageOS%2Fandroid_kernel_motorola_exynos9610.git net: __pskb_pull_tail() & pskb_carve_frag_list() drop_monitor friends commit ef527f968ae05c6717c39f49c8709a7e2c19183a upstream. Whenever one of these functions pull all data from an skb in a frag_list, use consume_skb() instead of kfree_skb() to avoid polluting drop monitoring. Fixes: 6fa01ccd8830 ("skbuff: Add pskb_extract() helper function") Signed-off-by: Eric Dumazet Link: https://lore.kernel.org/r/20220220154052.1308469-1-eric.dumazet@gmail.com Signed-off-by: Jakub Kicinski Signed-off-by: Greg Kroah-Hartman --- diff --git a/net/core/skbuff.c b/net/core/skbuff.c index a278258e68cb..fbb1ab032d2e 100644 --- a/net/core/skbuff.c +++ b/net/core/skbuff.c @@ -1974,7 +1974,7 @@ void *__pskb_pull_tail(struct sk_buff *skb, int delta) /* Free pulled out fragments. */ while ((list = skb_shinfo(skb)->frag_list) != insp) { skb_shinfo(skb)->frag_list = list->next; - kfree_skb(list); + consume_skb(list); } /* And insert new clone at head. */ if (clone) { @@ -5408,7 +5408,7 @@ static int pskb_carve_frag_list(struct sk_buff *skb, /* Free pulled out fragments. */ while ((list = shinfo->frag_list) != insp) { shinfo->frag_list = list->next; - kfree_skb(list); + consume_skb(list); } /* And insert new clone at head. */ if (clone) {