linux/net/ipv6
Xiaotian Feng 41bb78b4b9 net dst: fix percpu_counter list corruption and poison overwritten
There're some percpu_counter list corruption and poison overwritten warnings
in recent kernel, which is resulted by fc66f95c.

commit fc66f95c switches to use percpu_counter, in ip6_route_net_init, kernel
init the percpu_counter for dst entries, but, the percpu_counter is never destroyed
in ip6_route_net_exit. So if the related data is freed by kernel, the freed percpu_counter
is still on the list, then if we insert/remove other percpu_counter, list corruption
resulted. Also, if the insert/remove option modifies the ->prev,->next pointer of
the freed value, the poison overwritten is resulted then.

With the following patch, the percpu_counter list corruption and poison overwritten
warnings disappeared.

Signed-off-by: Xiaotian Feng <dfeng@redhat.com>
Cc: "David S. Miller" <davem@davemloft.net>
Cc: Alexey Kuznetsov <kuznet@ms2.inr.ac.ru>
Cc: "Pekka Savola (ipv6)" <pekkas@netcore.fi>
Cc: James Morris <jmorris@namei.org>
Cc: Hideaki YOSHIFUJI <yoshfuji@linux-ipv6.org>
Cc: Patrick McHardy <kaber@trash.net>
Acked-by: Eric Dumazet <eric.dumazet@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2010-11-03 18:50:07 -07:00
..
netfilter netfilter: Add missing CONFIG_SYSCTL checks in ipv6's nf_conntrack_reasm.c 2010-10-26 09:08:53 -07:00
addrconf_core.c
addrconf.c ipv6: fix refcnt problem related to POSTDAD state 2010-10-27 11:37:30 -07:00
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 Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/kaber/nf-next-2.6 2010-10-21 08:21:34 -07:00
ah6.c
anycast.c
datagram.c tproxy: added tproxy sockopt interface in the IPV6 layer 2010-10-21 16:08:28 +02:00
esp6.c
exthdrs_core.c net: return operator cleanup 2010-09-23 14:33:39 -07:00
exthdrs.c
fib6_rules.c fib6: use FIB_LOOKUP_NOREF in fib6_rule_lookup() 2010-10-16 11:13:21 -07:00
icmp.c
inet6_connection_sock.c
inet6_hashtables.c
ip6_fib.c fib: avoid false sharing on fib_table_hash 2010-10-16 11:13:23 -07:00
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 tunnels: Fix tunnels change rcu protection 2010-10-27 14:20:08 -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 tproxy: Add missing CAP_NET_ADMIN check to ipv6 side 2010-10-24 16:07:50 -07:00
Kconfig
Makefile
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 ipv6/udp: report SndbufErrors and RcvbufErrors 2010-10-30 16:17:23 -07:00
protocol.c net: add __rcu annotations to protocol 2010-10-27 11:37:31 -07:00
raw.c net: add __rcu annotation to sk_filter 2010-10-25 14:18:28 -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 net dst: fix percpu_counter list corruption and poison overwritten 2010-11-03 18:50:07 -07:00
sit.c tunnels: Fix tunnels change rcu protection 2010-10-27 14:20:08 -07:00
syncookies.c
sysctl_net_ipv6.c
tcp_ipv6.c Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/kaber/nf-next-2.6 2010-10-21 08:21:34 -07:00
tunnel6.c tunnels: add _rcu annotations 2010-10-25 13:09:45 -07:00
udp_impl.h
udp.c net: add __rcu annotation to sk_filter 2010-10-25 14:18:28 -07:00
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 dst: use a percpu_counter to track entries 2010-10-11 13:06:53 -07:00
xfrm6_state.c xfrm: Allow different selector family in temporary state 2010-09-20 11:11:38 -07:00
xfrm6_tunnel.c xfrm6: make xfrm6_tunnel_free_spi local 2010-10-21 03:09:45 -07:00