diff options
author | Steve French <sfrench@us.ibm.com> | 2005-08-30 14:33:26 -0400 |
---|---|---|
committer | Steve French <sfrench@us.ibm.com> | 2005-08-30 14:33:26 -0400 |
commit | 2016ef789a9ded2e169ad1c028ae3deb5302571f (patch) | |
tree | 601359f15b42d4d9868b4eadfe909a7bef6435c5 /net/ipv4/udp.c | |
parent | 7f57356b70dda014ef269135942426e4a852023e (diff) | |
parent | 6b39374a27eb4be7e9d82145ae270ba02ea90dc8 (diff) |
Merge with /pub/scm/linux/kernel/git/torvalds/linux-2.6.git
Diffstat (limited to 'net/ipv4/udp.c')
-rw-r--r-- | net/ipv4/udp.c | 37 |
1 files changed, 19 insertions, 18 deletions
diff --git a/net/ipv4/udp.c b/net/ipv4/udp.c index dc4d07357e3a..e5beca7de86c 100644 --- a/net/ipv4/udp.c +++ b/net/ipv4/udp.c | |||
@@ -95,7 +95,8 @@ | |||
95 | #include <linux/ipv6.h> | 95 | #include <linux/ipv6.h> |
96 | #include <linux/netdevice.h> | 96 | #include <linux/netdevice.h> |
97 | #include <net/snmp.h> | 97 | #include <net/snmp.h> |
98 | #include <net/tcp.h> | 98 | #include <net/ip.h> |
99 | #include <net/tcp_states.h> | ||
99 | #include <net/protocol.h> | 100 | #include <net/protocol.h> |
100 | #include <linux/skbuff.h> | 101 | #include <linux/skbuff.h> |
101 | #include <linux/proc_fs.h> | 102 | #include <linux/proc_fs.h> |
@@ -112,7 +113,7 @@ | |||
112 | * Snmp MIB for the UDP layer | 113 | * Snmp MIB for the UDP layer |
113 | */ | 114 | */ |
114 | 115 | ||
115 | DEFINE_SNMP_STAT(struct udp_mib, udp_statistics); | 116 | DEFINE_SNMP_STAT(struct udp_mib, udp_statistics) __read_mostly; |
116 | 117 | ||
117 | struct hlist_head udp_hash[UDP_HTABLE_SIZE]; | 118 | struct hlist_head udp_hash[UDP_HTABLE_SIZE]; |
118 | DEFINE_RWLOCK(udp_hash_lock); | 119 | DEFINE_RWLOCK(udp_hash_lock); |
@@ -628,7 +629,7 @@ back_from_confirm: | |||
628 | /* ... which is an evident application bug. --ANK */ | 629 | /* ... which is an evident application bug. --ANK */ |
629 | release_sock(sk); | 630 | release_sock(sk); |
630 | 631 | ||
631 | LIMIT_NETDEBUG(printk(KERN_DEBUG "udp cork app bug 2\n")); | 632 | LIMIT_NETDEBUG(KERN_DEBUG "udp cork app bug 2\n"); |
632 | err = -EINVAL; | 633 | err = -EINVAL; |
633 | goto out; | 634 | goto out; |
634 | } | 635 | } |
@@ -693,7 +694,7 @@ static int udp_sendpage(struct sock *sk, struct page *page, int offset, | |||
693 | if (unlikely(!up->pending)) { | 694 | if (unlikely(!up->pending)) { |
694 | release_sock(sk); | 695 | release_sock(sk); |
695 | 696 | ||
696 | LIMIT_NETDEBUG(printk(KERN_DEBUG "udp cork app bug 3\n")); | 697 | LIMIT_NETDEBUG(KERN_DEBUG "udp cork app bug 3\n"); |
697 | return -EINVAL; | 698 | return -EINVAL; |
698 | } | 699 | } |
699 | 700 | ||
@@ -1102,7 +1103,7 @@ static int udp_checksum_init(struct sk_buff *skb, struct udphdr *uh, | |||
1102 | skb->ip_summed = CHECKSUM_UNNECESSARY; | 1103 | skb->ip_summed = CHECKSUM_UNNECESSARY; |
1103 | if (!udp_check(uh, ulen, saddr, daddr, skb->csum)) | 1104 | if (!udp_check(uh, ulen, saddr, daddr, skb->csum)) |
1104 | return 0; | 1105 | return 0; |
1105 | LIMIT_NETDEBUG(printk(KERN_DEBUG "udp v4 hw csum failure.\n")); | 1106 | LIMIT_NETDEBUG(KERN_DEBUG "udp v4 hw csum failure.\n"); |
1106 | skb->ip_summed = CHECKSUM_NONE; | 1107 | skb->ip_summed = CHECKSUM_NONE; |
1107 | } | 1108 | } |
1108 | if (skb->ip_summed != CHECKSUM_UNNECESSARY) | 1109 | if (skb->ip_summed != CHECKSUM_UNNECESSARY) |
@@ -1181,13 +1182,13 @@ int udp_rcv(struct sk_buff *skb) | |||
1181 | return(0); | 1182 | return(0); |
1182 | 1183 | ||
1183 | short_packet: | 1184 | short_packet: |
1184 | LIMIT_NETDEBUG(printk(KERN_DEBUG "UDP: short packet: From %u.%u.%u.%u:%u %d/%d to %u.%u.%u.%u:%u\n", | 1185 | LIMIT_NETDEBUG(KERN_DEBUG "UDP: short packet: From %u.%u.%u.%u:%u %d/%d to %u.%u.%u.%u:%u\n", |
1185 | NIPQUAD(saddr), | 1186 | NIPQUAD(saddr), |
1186 | ntohs(uh->source), | 1187 | ntohs(uh->source), |
1187 | ulen, | 1188 | ulen, |
1188 | len, | 1189 | len, |
1189 | NIPQUAD(daddr), | 1190 | NIPQUAD(daddr), |
1190 | ntohs(uh->dest))); | 1191 | ntohs(uh->dest)); |
1191 | no_header: | 1192 | no_header: |
1192 | UDP_INC_STATS_BH(UDP_MIB_INERRORS); | 1193 | UDP_INC_STATS_BH(UDP_MIB_INERRORS); |
1193 | kfree_skb(skb); | 1194 | kfree_skb(skb); |
@@ -1198,12 +1199,12 @@ csum_error: | |||
1198 | * RFC1122: OK. Discards the bad packet silently (as far as | 1199 | * RFC1122: OK. Discards the bad packet silently (as far as |
1199 | * the network is concerned, anyway) as per 4.1.3.4 (MUST). | 1200 | * the network is concerned, anyway) as per 4.1.3.4 (MUST). |
1200 | */ | 1201 | */ |
1201 | LIMIT_NETDEBUG(printk(KERN_DEBUG "UDP: bad checksum. From %d.%d.%d.%d:%d to %d.%d.%d.%d:%d ulen %d\n", | 1202 | LIMIT_NETDEBUG(KERN_DEBUG "UDP: bad checksum. From %d.%d.%d.%d:%d to %d.%d.%d.%d:%d ulen %d\n", |
1202 | NIPQUAD(saddr), | 1203 | NIPQUAD(saddr), |
1203 | ntohs(uh->source), | 1204 | ntohs(uh->source), |
1204 | NIPQUAD(daddr), | 1205 | NIPQUAD(daddr), |
1205 | ntohs(uh->dest), | 1206 | ntohs(uh->dest), |
1206 | ulen)); | 1207 | ulen); |
1207 | drop: | 1208 | drop: |
1208 | UDP_INC_STATS_BH(UDP_MIB_INERRORS); | 1209 | UDP_INC_STATS_BH(UDP_MIB_INERRORS); |
1209 | kfree_skb(skb); | 1210 | kfree_skb(skb); |