Commit 8edf19c2fe028563fc6ea9cb1995b8ee4172d4b6
Committed by
David S. Miller
1 parent
c720c7e838
Exists in
master
and in
7 other branches
net: sk_drops consolidation part 2
- skb_kill_datagram() can increment sk->sk_drops itself, not callers. - UDP on IPV4 & IPV6 dropped frames (because of bad checksum or policy checks) increment sk_drops Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Showing 4 changed files with 6 additions and 2 deletions Side-by-side Diff
net/core/datagram.c
net/ipv4/udp.c
... | ... | @@ -867,6 +867,7 @@ |
867 | 867 | udp_lib_checksum_complete(skb)) { |
868 | 868 | UDP_INC_STATS_BH(sock_net(sk), UDP_MIB_INERRORS, |
869 | 869 | IS_UDPLITE(sk)); |
870 | + atomic_inc(&sk->sk_drops); | |
870 | 871 | __skb_unlink(skb, rcvq); |
871 | 872 | __skb_queue_tail(&list_kill, skb); |
872 | 873 | } |
... | ... | @@ -1186,6 +1187,7 @@ |
1186 | 1187 | |
1187 | 1188 | drop: |
1188 | 1189 | UDP_INC_STATS_BH(sock_net(sk), UDP_MIB_INERRORS, is_udplite); |
1190 | + atomic_inc(&sk->sk_drops); | |
1189 | 1191 | kfree_skb(skb); |
1190 | 1192 | return -1; |
1191 | 1193 | } |
net/ipv6/raw.c
net/ipv6/udp.c
... | ... | @@ -390,11 +390,13 @@ |
390 | 390 | if (rc == -ENOMEM) |
391 | 391 | UDP6_INC_STATS_BH(sock_net(sk), |
392 | 392 | UDP_MIB_RCVBUFERRORS, is_udplite); |
393 | - goto drop; | |
393 | + goto drop_no_sk_drops_inc; | |
394 | 394 | } |
395 | 395 | |
396 | 396 | return 0; |
397 | 397 | drop: |
398 | + atomic_inc(&sk->sk_drops); | |
399 | +drop_no_sk_drops_inc: | |
398 | 400 | UDP6_INC_STATS_BH(sock_net(sk), UDP_MIB_INERRORS, is_udplite); |
399 | 401 | kfree_skb(skb); |
400 | 402 | return -1; |