linux/net/ipv6
Keir Fraser 57f5f544f5 [IPV6]: ipv6_add_addr should install dstentry earlier
ipv6_add_addr allocates a struct inet6_ifaddr and a dstentry, but it
doesn't install the dstentry in ifa->rt until after it releases the
addrconf_hash_lock. This means other CPUs will be able to see the new
address while it hasn't been initialized completely yet.

One possible fix would be to grab the ifp->lock spinlock when
creating the address struct; a simpler fix is to just move the
assignment.

Acked-by: jbeulich@novell.com
Acked-by: okir@suse.de
Acked-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
2006-08-29 21:22:18 -07:00
..
netfilter [NETFILTER]: {arp,ip,ip6}_tables: proper error recovery in init path 2006-08-13 18:57:28 -07:00
Kconfig
Makefile
addrconf.c [IPV6]: ipv6_add_addr should install dstentry earlier 2006-08-29 21:22:18 -07:00
af_inet6.c [IPV6]: Audit all ip6_dst_lookup/ip6_dst_store calls 2006-08-02 13:38:14 -07:00
ah6.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
anycast.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
datagram.c
esp6.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
exthdrs.c [IPV6]: Added GSO support for TCPv6 2006-06-30 14:12:06 -07:00
exthdrs_core.c
icmp.c [IPV6] lockdep: annotate __icmpv6_socket 2006-08-17 16:29:48 -07:00
inet6_connection_sock.c [IPV6]: Audit all ip6_dst_lookup/ip6_dst_store calls 2006-08-02 13:38:14 -07:00
inet6_hashtables.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
ip6_fib.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
ip6_flowlabel.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
ip6_input.c [IPV6]: Clean skb cb on IPv6 input. 2006-07-24 23:44:44 -07:00
ip6_output.c [INET]: Use pskb_trim_unique when trimming paged unique skbs 2006-08-13 20:12:58 -07:00
ip6_tunnel.c [NET]: Conversions from kmalloc+memset to k(z|c)alloc. 2006-07-21 14:51:30 -07:00
ipcomp6.c [IPCOMP]: Fix truesize after decompression 2006-07-12 13:58:55 -07:00
ipv6_sockglue.c [NET] gso: Fix up GSO packets with broken checksums 2006-07-08 13:34:56 -07:00
ipv6_syms.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
mcast.c [MCAST]: Fix filter leak on device removal. 2006-08-17 16:29:57 -07:00
ndisc.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
netfilter.c
proc.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
protocol.c
raw.c [IPV4/IPV6]: Setting 0 for unused port field in RAW IP recvmsg(). 2006-07-25 17:05:35 -07:00
reassembly.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
route.c [IPV6]: SNMPv2 "ipv6IfStatsInAddrErrors" counter error 2006-08-29 21:22:15 -07:00
sit.c [IPV4]: Get rid of redundant IPCB->opts initialisation 2006-07-21 14:29:53 -07:00
sysctl_net_ipv6.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
tcp_ipv6.c [IPV6]: Segmentation offload not set correctly on TCP children 2006-08-26 18:42:01 -07:00
tunnel6.c
udp.c [IPV6]: Audit all ip6_dst_lookup/ip6_dst_store calls 2006-08-02 13:38:14 -07:00
xfrm6_input.c
xfrm6_mode_transport.c
xfrm6_mode_tunnel.c
xfrm6_output.c [XFRM]: Fix protocol field value for outgoing IPv6 GSO packets 2006-08-02 13:38:13 -07:00
xfrm6_policy.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
xfrm6_state.c
xfrm6_tunnel.c [IPV6] xfrm6_tunnel: Delete debugging code. 2006-07-24 13:49:06 -07:00