linux/net/ipv6
Eric Dumazet d6bf781712 net neigh: RCU conversion of neigh hash table
David

This is the first step for RCU conversion of neigh code.

Next patches will convert hash_buckets[] and "struct neighbour" to RCU
protected objects.

Thanks

[PATCH net-next] net neigh: RCU conversion of neigh hash table

Instead of storing hash_buckets, hash_mask and hash_rnd in "struct
neigh_table", a new structure is defined :

struct neigh_hash_table {
       struct neighbour        **hash_buckets;
       unsigned int            hash_mask;
       __u32                   hash_rnd;
       struct rcu_head         rcu;
};

And "struct neigh_table" has an RCU protected pointer to such a
neigh_hash_table.

This means the signature of (*hash)() function changed: We need to add a
third parameter with the actual hash_rnd value, since this is not
anymore a neigh_table field.

Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2010-10-05 14:54:36 -07:00
..
netfilter net: return operator cleanup 2010-09-23 14:33:39 -07:00
Kconfig
Makefile
addrconf.c ipv6: make __ipv6_isatap_ifid static 2010-10-05 00:47:39 -07:00
addrconf_core.c
addrlabel.c Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2010-09-27 01:03:03 -07:00
af_inet6.c net: return operator cleanup 2010-09-23 14:33:39 -07:00
ah6.c
anycast.c
datagram.c udp: add rehash on connect() 2010-09-08 21:45:01 -07:00
esp6.c
exthdrs.c
exthdrs_core.c net: return operator cleanup 2010-09-23 14:33:39 -07:00
fib6_rules.c
icmp.c
inet6_connection_sock.c
inet6_hashtables.c
ip6_fib.c
ip6_flowlabel.c
ip6_input.c
ip6_output.c Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2010-09-27 01:03:03 -07:00
ip6_tunnel.c net: add a core netdev->rx_dropped counter 2010-10-05 14:47:55 -07:00
ip6mr.c net: add a core netdev->rx_dropped counter 2010-10-05 14:47:55 -07:00
ipcomp6.c
ipv6_sockglue.c
mcast.c
mip6.c
ndisc.c net neigh: RCU conversion of neigh hash table 2010-10-05 14:54:36 -07:00
netfilter.c
proc.c
protocol.c net: inet_add_protocol() can use cmpxchg() 2010-09-08 21:31:35 -07:00
raw.c net: return operator cleanup 2010-09-23 14:33:39 -07:00
reassembly.c Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2010-09-09 22:27:33 -07:00
route.c Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2010-10-04 11:56:38 -07:00
sit.c net: add a core netdev->rx_dropped counter 2010-10-05 14:47:55 -07:00
syncookies.c
sysctl_net_ipv6.c
tcp_ipv6.c net: return operator cleanup 2010-09-23 14:33:39 -07:00
tunnel6.c tunnels: missing rcu_assign_pointer() 2010-09-09 15:02:39 -07:00
udp.c udp: add rehash on connect() 2010-09-08 21:45:01 -07:00
udp_impl.h
udplite.c
xfrm6_input.c
xfrm6_mode_beet.c
xfrm6_mode_ro.c
xfrm6_mode_transport.c
xfrm6_mode_tunnel.c
xfrm6_output.c
xfrm6_policy.c net: return operator cleanup 2010-09-23 14:33:39 -07:00
xfrm6_state.c xfrm: Allow different selector family in temporary state 2010-09-20 11:11:38 -07:00
xfrm6_tunnel.c ipv6: struct xfrm6_tunnel in read_mostly section 2010-08-30 13:50:46 -07:00