linux/net/ipv6
Herbert Xu 3305b80c21 [IP]: Simplify and consolidate MSG_PEEK error handling
When a packet is obtained from skb_recv_datagram with MSG_PEEK enabled
it is left on the socket receive queue.  This means that when we detect
a checksum error we have to be careful when trying to free the packet
as someone could have dequeued it in the time being.

Currently this delicate logic is duplicated three times between UDPv4,
UDPv6 and RAWv6.  This patch moves them into a one place and simplifies
the code somewhat.

This is based on a suggestion by Eric Dumazet.

Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
2006-01-03 13:10:41 -08:00
..
netfilter [NETFILTER] ip_tables: NUMA-aware allocation 2006-01-03 13:10:29 -08:00
addrconf.c [IPV6]: Fix addrconf dead lock. 2005-12-27 13:35:15 -08:00
af_inet6.c [IPV6]: Load protocol module dynamically. 2005-12-02 20:56:57 -08:00
ah6.c [CRYPTO]: crypto_free_tfm() callers no longer need to check for NULL 2005-09-01 17:44:29 -07:00
anycast.c [IPV6]: V6 route events reported with wrong netlink PID and seq number 2005-06-21 13:51:04 -07:00
datagram.c [IPV6]: Fix calculation of AH length during filling ancillary data. 2005-11-20 12:21:59 +09:00
esp6.c [IPv6] IPsec: fix pmtu calculation of esp 2005-12-08 23:11:42 -08:00
exthdrs_core.c [SELINUX]: Fix ipv6_skip_exthdr() invocation causing OOPS. 2005-04-24 20:16:19 -07:00
exthdrs.c [IPV6]: Fix sending extension headers before and including routing header. 2005-11-20 12:23:18 +09:00
icmp.c [IPV6]: Try not to send icmp to anycast address. 2005-12-21 22:57:06 +09:00
inet6_connection_sock.c [IPV6]: Introduce inet6_rsk() 2006-01-03 13:10:37 -08:00
inet6_hashtables.c [INET6_HASHTABLES]: Move inet6_lookup functions to net/ipv6/inet6_hashtables.c 2005-08-29 15:57:29 -07:00
ip6_fib.c [IPV6]: Put addr_diff() into common header for future use. 2005-11-08 09:37:56 -08:00
ip6_flowlabel.c [IPV6]: Fix sending extension headers before and including routing header. 2005-11-20 12:23:18 +09:00
ip6_input.c [NETFILTER]: Add nf_conntrack subsystem. 2005-11-09 16:38:16 -08:00
ip6_output.c [IPV6]: make two functions static 2005-11-29 16:28:56 -08:00
ip6_tunnel.c [IPV6]: ip6ip6_lock is not unlocked in error path. 2005-11-09 13:08:29 -08:00
ipcomp6.c [NET]: kfree cleanup 2005-11-08 09:41:34 -08:00
ipv6_sockglue.c [ICSK]: Rename struct tcp_func to struct inet_connection_sock_af_ops 2006-01-03 13:10:38 -08:00
ipv6_syms.c [IPV6]: Make ipv6_addr_type() more generic so that we can use it for source address selection. 2005-11-08 09:38:12 -08:00
Kconfig [NET]: Make ipip/ip6_tunnel independant of XFRM 2005-07-19 14:03:34 -07:00
Makefile [IPV6]: Generalise tcp_v6_search_req & tcp_v6_synq_add 2006-01-03 13:10:36 -08:00
mcast.c [IPV6] mcast: Fix multiple issues in MLDv2 reports. 2005-12-27 14:03:00 -08:00
ndisc.c [IPV6]: Fix NS handing for proxy/anycast address 2005-10-05 12:11:41 -07:00
netfilter.c [NET]: Make NETDEBUG pure printk wrappers 2005-08-29 15:56:08 -07:00
proc.c [NET]: Wider use of for_each_*cpu() 2005-10-25 23:54:01 -02:00
protocol.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
raw.c [IP]: Simplify and consolidate MSG_PEEK error handling 2006-01-03 13:10:41 -08:00
reassembly.c [IPV4,IPV6]: replace handmade list with hlist in IPv{4,6} reassembly 2005-11-16 12:55:37 -08:00
route.c [IPV6]: Flag RTF_ANYCAST for anycast routes. 2005-12-21 22:56:42 +09:00
sit.c [NET]: Fix sparse warnings 2005-08-29 16:01:32 -07:00
sysctl_net_ipv6.c [NET]: Fix sparse warnings 2005-08-29 16:01:32 -07:00
tcp_ipv6.c [ICSK]: Rename struct tcp_func to struct inet_connection_sock_af_ops 2006-01-03 13:10:38 -08:00
udp.c [IP]: Simplify and consolidate MSG_PEEK error handling 2006-01-03 13:10:41 -08:00
xfrm6_input.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
xfrm6_output.c [IPV6]: Fix xfrm tunnel oops with large packets 2005-05-23 13:11:07 -07:00
xfrm6_policy.c [XFRM]: Handle DCCP in xfrm{4,6}_decode_session 2005-12-19 14:03:46 -08:00
xfrm6_state.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
xfrm6_tunnel.c [NET]: use __read_mostly on kmem_cache_t , DEFINE_SNMP_STAT pointers 2005-08-29 16:11:18 -07:00