]> git.proxmox.com Git - mirror_ubuntu-jammy-kernel.git/commitdiff
net-gro: remove GRO_DROP
authorEric Dumazet <edumazet@google.com>
Fri, 8 Jan 2021 11:39:03 +0000 (03:39 -0800)
committerJakub Kicinski <kuba@kernel.org>
Sat, 9 Jan 2021 22:24:26 +0000 (14:24 -0800)
GRO_DROP can only be returned from napi_gro_frags()
if the skb has not been allocated by a prior napi_get_frags()

Since drivers must use napi_get_frags() and test its result
before populating the skb with metadata, we can safely remove
GRO_DROP since it offers no practical use.

Signed-off-by: Eric Dumazet <edumazet@google.com>
Cc: Jesse Brandeburg <jesse.brandeburg@intel.com>
Acked-by: Edward Cree <ecree.xilinx@gmail.com>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
include/linux/netdevice.h
net/core/dev.c

index 1ec3ac5d5bbffe6062216fbd4009e88d8c909fa9..5b949076ed2319fc676a7172350480efea5807d9 100644 (file)
@@ -376,7 +376,6 @@ enum gro_result {
        GRO_MERGED_FREE,
        GRO_HELD,
        GRO_NORMAL,
-       GRO_DROP,
        GRO_CONSUMED,
 };
 typedef enum gro_result gro_result_t;
index 7afbb642e203ad1556e96e2fc7595b6289152201..e4d77c8abe761408caf3a0d1880727f33b5134b6 100644 (file)
@@ -6070,10 +6070,6 @@ static gro_result_t napi_skb_finish(struct napi_struct *napi,
                gro_normal_one(napi, skb);
                break;
 
-       case GRO_DROP:
-               kfree_skb(skb);
-               break;
-
        case GRO_MERGED_FREE:
                if (NAPI_GRO_CB(skb)->free == NAPI_GRO_FREE_STOLEN_HEAD)
                        napi_skb_free_stolen_head(skb);
@@ -6158,10 +6154,6 @@ static gro_result_t napi_frags_finish(struct napi_struct *napi,
                        gro_normal_one(napi, skb);
                break;
 
-       case GRO_DROP:
-               napi_reuse_skb(napi, skb);
-               break;
-
        case GRO_MERGED_FREE:
                if (NAPI_GRO_CB(skb)->free == NAPI_GRO_FREE_STOLEN_HEAD)
                        napi_skb_free_stolen_head(skb);
@@ -6223,9 +6215,6 @@ gro_result_t napi_gro_frags(struct napi_struct *napi)
        gro_result_t ret;
        struct sk_buff *skb = napi_frags_skb(napi);
 
-       if (!skb)
-               return GRO_DROP;
-
        trace_napi_gro_frags_entry(skb);
 
        ret = napi_frags_finish(napi, skb, dev_gro_receive(napi, skb));