Remove some dropwatch/drop_monitor false positives.
Signed-off-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
        if (skb_headroom(skb) < 2) {
                pr_debug("reallocating skb\n");
                skb2 = skb_realloc_headroom(skb, LEC_HEADER_LEN);
-               kfree_skb(skb);
-               if (skb2 == NULL)
+               if (unlikely(!skb2)) {
+                       kfree_skb(skb);
                        return NETDEV_TX_OK;
+               }
+               consume_skb(skb);
                skb = skb2;
        }
        skb_push(skb, 2);
 
                                kfree_skb(n);
                                goto nospace;
                        }
-                       kfree_skb(skb);
+                       consume_skb(skb);
                        skb = n;
                        if (skb == NULL)
                                return DROP_PACKET;
 
                if (skb->sk != NULL)
                        skb_set_owner_w(skbn, skb->sk);
 
-               kfree_skb(skb);
+               consume_skb(skb);
                skb = skbn;
        }
 
 
                if (skb->sk != NULL)
                        skb_set_owner_w(skbn, skb->sk);
 
-               kfree_skb(skb);
+               consume_skb(skb);
 
                skb = skbn;
        }
 
                        kfree_skb(skb);
                        return -ENOBUFS;
                }
-               kfree_skb(skb);
+               consume_skb(skb);
                skb = skb2;
                net_info_ratelimited("dn_long_output: Increasing headroom\n");
        }
                        kfree_skb(skb);
                        return -ENOBUFS;
                }
-               kfree_skb(skb);
+               consume_skb(skb);
                skb = skb2;
                net_info_ratelimited("dn_short_output: Increasing headroom\n");
        }
                        kfree_skb(skb);
                        return -ENOBUFS;
                }
-               kfree_skb(skb);
+               consume_skb(skb);
                skb = skb2;
                net_info_ratelimited("dn_phase3_output: Increasing headroom\n");
        }
 
                }
                if (skb->sk)
                        skb_set_owner_w(skb2, skb->sk);
-               kfree_skb(skb);
+               consume_skb(skb);
                skb = skb2;
        }
 
 
                IP_INC_STATS(dev_net(dev), IPSTATS_MIB_FRAGCREATES);
        }
-       kfree_skb(skb);
+       consume_skb(skb);
        IP_INC_STATS(dev_net(dev), IPSTATS_MIB_FRAGOKS);
        return err;
 
 
                        IP_VS_ERR_RL("%s(): no memory\n", __func__);
                        return NF_STOLEN;
                }
-               kfree_skb(skb);
+               consume_skb(skb);
                skb = new_skb;
                old_iph = ip_hdr(skb);
        }
                        IP_VS_ERR_RL("%s(): no memory\n", __func__);
                        return NF_STOLEN;
                }
-               kfree_skb(skb);
+               consume_skb(skb);
                skb = new_skb;
                old_iph = ipv6_hdr(skb);
        }