From f78862173b7ba5813786b721f29b130f146a56d9 Mon Sep 17 00:00:00 2001 From: Eric Dumazet Date: Wed, 5 Sep 2012 23:34:44 +0000 Subject: [PATCH] --- yaml --- r: 322756 b: refs/heads/master c: 979402b16cde048ced4839e21cc49e0779352b80 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/net/ipv4/udp.c | 5 +++++ trunk/net/ipv6/udp.c | 11 +++++++++++ 3 files changed, 17 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index 5ebb43ad3a49..694bca853282 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 521130d11fd37b328543477df5522704a0e7cf2c +refs/heads/master: 979402b16cde048ced4839e21cc49e0779352b80 diff --git a/trunk/net/ipv4/udp.c b/trunk/net/ipv4/udp.c index 6f6d1aca3c3d..2814f66dac64 100644 --- a/trunk/net/ipv4/udp.c +++ b/trunk/net/ipv4/udp.c @@ -1226,6 +1226,11 @@ int udp_recvmsg(struct kiocb *iocb, struct sock *sk, struct msghdr *msg, if (unlikely(err)) { trace_kfree_skb(skb, udp_recvmsg); + if (!peeked) { + atomic_inc(&sk->sk_drops); + UDP_INC_STATS_USER(sock_net(sk), + UDP_MIB_INERRORS, is_udplite); + } goto out_free; } diff --git a/trunk/net/ipv6/udp.c b/trunk/net/ipv6/udp.c index 99d0077b56b8..07e2bfef6845 100644 --- a/trunk/net/ipv6/udp.c +++ b/trunk/net/ipv6/udp.c @@ -394,6 +394,17 @@ int udpv6_recvmsg(struct kiocb *iocb, struct sock *sk, } if (unlikely(err)) { trace_kfree_skb(skb, udpv6_recvmsg); + if (!peeked) { + atomic_inc(&sk->sk_drops); + if (is_udp4) + UDP_INC_STATS_USER(sock_net(sk), + UDP_MIB_INERRORS, + is_udplite); + else + UDP6_INC_STATS_USER(sock_net(sk), + UDP_MIB_INERRORS, + is_udplite); + } goto out_free; } if (!peeked) {