diff options
author | Eric Dumazet <edumazet@google.com> | 2012-04-24 06:17:59 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2012-04-25 20:39:46 -0400 |
commit | 808db80a7eeff8314ac51654bfefc864582eea13 (patch) | |
tree | 9c42d1486a5e6052d0c285a5a6a6d38fdbe0b890 | |
parent | 081579840b4b2421e37bc67e3b089b7ca64ef040 (diff) |
ipv6: call consume_skb() in frag/reassembly
Some kfree_skb() calls should be replaced by consume_skb() to avoid
drop_monitor/dropwatch false positives.
Signed-off-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r-- | net/ipv6/ip6_output.c | 4 | ||||
-rw-r--r-- | net/ipv6/reassembly.c | 2 |
2 files changed, 3 insertions, 3 deletions
diff --git a/net/ipv6/ip6_output.c b/net/ipv6/ip6_output.c index b7ca46161cb9..b347062aa809 100644 --- a/net/ipv6/ip6_output.c +++ b/net/ipv6/ip6_output.c | |||
@@ -210,7 +210,7 @@ int ip6_xmit(struct sock *sk, struct sk_buff *skb, struct flowi6 *fl6, | |||
210 | kfree_skb(skb); | 210 | kfree_skb(skb); |
211 | return -ENOBUFS; | 211 | return -ENOBUFS; |
212 | } | 212 | } |
213 | kfree_skb(skb); | 213 | consume_skb(skb); |
214 | skb = skb2; | 214 | skb = skb2; |
215 | skb_set_owner_w(skb, sk); | 215 | skb_set_owner_w(skb, sk); |
216 | } | 216 | } |
@@ -889,7 +889,7 @@ slow_path: | |||
889 | } | 889 | } |
890 | IP6_INC_STATS(net, ip6_dst_idev(skb_dst(skb)), | 890 | IP6_INC_STATS(net, ip6_dst_idev(skb_dst(skb)), |
891 | IPSTATS_MIB_FRAGOKS); | 891 | IPSTATS_MIB_FRAGOKS); |
892 | kfree_skb(skb); | 892 | consume_skb(skb); |
893 | return err; | 893 | return err; |
894 | 894 | ||
895 | fail: | 895 | fail: |
diff --git a/net/ipv6/reassembly.c b/net/ipv6/reassembly.c index 36e04cff1a85..54c5d2b704df 100644 --- a/net/ipv6/reassembly.c +++ b/net/ipv6/reassembly.c | |||
@@ -433,7 +433,7 @@ static int ip6_frag_reasm(struct frag_queue *fq, struct sk_buff *prev, | |||
433 | skb_morph(head, fq->q.fragments); | 433 | skb_morph(head, fq->q.fragments); |
434 | head->next = fq->q.fragments->next; | 434 | head->next = fq->q.fragments->next; |
435 | 435 | ||
436 | kfree_skb(fq->q.fragments); | 436 | consume_skb(fq->q.fragments); |
437 | fq->q.fragments = head; | 437 | fq->q.fragments = head; |
438 | } | 438 | } |
439 | 439 | ||