diff options
author | Wei Yongjun <yjwei@cn.fujitsu.com> | 2008-11-02 11:14:27 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2008-11-03 02:52:46 -0500 |
commit | 0856f93958c488f0cc656be53c26dfd20663bdb3 (patch) | |
tree | bba86ff48a9eef920fafde53127f7a3f5fc67bd1 /net | |
parent | f26ba1751145edbf52b2c89a40e389f2fbdfc1af (diff) |
udp: Fix the SNMP counter of UDP_MIB_INERRORS
UDP packets received in udpv6_recvmsg() are not only IPv6 UDP packets, but
also have IPv4 UDP packets, so when do the counter of UDP_MIB_INERRORS in
udpv6_recvmsg(), we should check whether the packet is a IPv6 UDP packet
or a IPv4 UDP packet.
Signed-off-by: Wei Yongjun <yjwei@cn.fujitsu.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net')
-rw-r--r-- | net/ipv6/udp.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/net/ipv6/udp.c b/net/ipv6/udp.c index 18696af106d6..8b48512ebf6a 100644 --- a/net/ipv6/udp.c +++ b/net/ipv6/udp.c | |||
@@ -236,8 +236,14 @@ out: | |||
236 | 236 | ||
237 | csum_copy_err: | 237 | csum_copy_err: |
238 | lock_sock(sk); | 238 | lock_sock(sk); |
239 | if (!skb_kill_datagram(sk, skb, flags)) | 239 | if (!skb_kill_datagram(sk, skb, flags)) { |
240 | UDP6_INC_STATS_USER(sock_net(sk), UDP_MIB_INERRORS, is_udplite); | 240 | if (is_udp4) |
241 | UDP_INC_STATS_USER(sock_net(sk), | ||
242 | UDP_MIB_INERRORS, is_udplite); | ||
243 | else | ||
244 | UDP6_INC_STATS_USER(sock_net(sk), | ||
245 | UDP_MIB_INERRORS, is_udplite); | ||
246 | } | ||
241 | release_sock(sk); | 247 | release_sock(sk); |
242 | 248 | ||
243 | if (flags & MSG_DONTWAIT) | 249 | if (flags & MSG_DONTWAIT) |