diff options
author | Keir Fraser <keir.fraser@cl.cam.ac.uk> | 2006-08-29 02:43:49 -0700 |
---|---|---|
committer | David S. Miller <davem@sunset.davemloft.net> | 2006-08-29 21:22:18 -0700 |
commit | 57f5f544f58ffa1d6c38630d0522c9c0be67c533 (patch) | |
tree | c47651ea2300b28e11d6898f67f73eab41a9423b /drivers | |
parent | fab2caf62ed03d83bd3a3598b859c3c345a8e8b5 (diff) | |
download | blackbird-op-linux-57f5f544f58ffa1d6c38630d0522c9c0be67c533.tar.gz blackbird-op-linux-57f5f544f58ffa1d6c38630d0522c9c0be67c533.zip |
[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>
Diffstat (limited to 'drivers')
0 files changed, 0 insertions, 0 deletions