aboutsummaryrefslogtreecommitdiffstats
path: root/net/ipv6/udp.c
diff options
context:
space:
mode:
authorWei Yongjun <yjwei@cn.fujitsu.com>2008-11-02 11:14:27 -0500
committerDavid S. Miller <davem@davemloft.net>2008-11-03 02:52:46 -0500
commit0856f93958c488f0cc656be53c26dfd20663bdb3 (patch)
treebba86ff48a9eef920fafde53127f7a3f5fc67bd1 /net/ipv6/udp.c
parentf26ba1751145edbf52b2c89a40e389f2fbdfc1af (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/ipv6/udp.c')
-rw-r--r--net/ipv6/udp.c10
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
237csum_copy_err: 237csum_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)