net: __pskb_pull_tail() & pskb_carve_frag_list() drop_monitor friends
authorEric Dumazet <edumazet@google.com>
Sun, 20 Feb 2022 15:40:52 +0000 (07:40 -0800)
committerJakub Kicinski <kuba@kernel.org>
Wed, 23 Feb 2022 00:32:35 +0000 (16:32 -0800)
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 <edumazet@google.com>
Link: https://lore.kernel.org/r/20220220154052.1308469-1-eric.dumazet@gmail.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
net/core/skbuff.c

index 6a15ce3..b8138c3 100644 (file)
@@ -2276,7 +2276,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) {
@@ -6105,7 +6105,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) {