| From 94eff2d5648eed5f42dc18ce8aca591fa9cf394f Mon Sep 17 00:00:00 2001 |
| From: Eric Dumazet <dada1@cosmosbay.com> |
| Date: Mon, 2 Feb 2009 13:41:57 -0800 |
| Subject: udp: increments sk_drops in __udp_queue_rcv_skb() |
| |
| From: Eric Dumazet <dada1@cosmosbay.com> |
| |
| [ Upstream commit e408b8dcb5ce42243a902205005208e590f28454 ] |
| |
| Commit 93821778def10ec1e69aa3ac10adee975dad4ff3 (udp: Fix rcv socket |
| locking) accidentally removed sk_drops increments for UDP IPV4 |
| sockets. |
| |
| This field can be used to detect incorrect sizing of socket receive |
| buffers. |
| |
| Signed-off-by: Eric Dumazet <dada1@cosmosbay.com> |
| Signed-off-by: David S. Miller <davem@davemloft.net> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> |
| |
| --- |
| net/ipv4/udp.c | 4 +++- |
| 1 file changed, 3 insertions(+), 1 deletion(-) |
| |
| --- a/net/ipv4/udp.c |
| +++ b/net/ipv4/udp.c |
| @@ -959,9 +959,11 @@ static int __udp_queue_rcv_skb(struct so |
| |
| if ((rc = sock_queue_rcv_skb(sk, skb)) < 0) { |
| /* Note that an ENOMEM error is charged twice */ |
| - if (rc == -ENOMEM) |
| + if (rc == -ENOMEM) { |
| UDP_INC_STATS_BH(sock_net(sk), UDP_MIB_RCVBUFERRORS, |
| is_udplite); |
| + atomic_inc(&sk->sk_drops); |
| + } |
| goto drop; |
| } |
| |