net: don't check skb_count twice
authorSieng Piaw Liew <liew.s.piaw@gmail.com>
Wed, 15 Jun 2022 03:24:26 +0000 (11:24 +0800)
committerDavid S. Miller <davem@davemloft.net>
Wed, 15 Jun 2022 11:51:31 +0000 (12:51 +0100)
NAPI cache skb_count is being checked twice without condition. Change to
checking the second time only if the first check is run.

Signed-off-by: Sieng Piaw Liew <liew.s.piaw@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/core/skbuff.c

index fec75f8..00bf35e 100644 (file)
@@ -175,13 +175,14 @@ static struct sk_buff *napi_skb_cache_get(void)
        struct napi_alloc_cache *nc = this_cpu_ptr(&napi_alloc_cache);
        struct sk_buff *skb;
 
-       if (unlikely(!nc->skb_count))
+       if (unlikely(!nc->skb_count)) {
                nc->skb_count = kmem_cache_alloc_bulk(skbuff_head_cache,
                                                      GFP_ATOMIC,
                                                      NAPI_SKB_CACHE_BULK,
                                                      nc->skb_cache);
-       if (unlikely(!nc->skb_count))
-               return NULL;
+               if (unlikely(!nc->skb_count))
+                       return NULL;
+       }
 
        skb = nc->skb_cache[--nc->skb_count];
        kasan_unpoison_object_data(skbuff_head_cache, skb);