diff options
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); |
