net ipv6: Fix duplicate /proc/sys/net/ipv6/neigh directory entries.
commit03700d4553b9401fa37c7d942bf7b58d6565fe21
authorEric W. Biederman <ebiederm@aristanetworks.com>
Tue, 22 Mar 2011 01:23:34 +0000 (21 18:23 -0700)
committerGreg Kroah-Hartman <gregkh@suse.de>
Thu, 21 Apr 2011 21:32:27 +0000 (21 14:32 -0700)
tree9ebef16b23332576fb6a989aa7ae87ab6f23301c
parent8f25b03628eee69953d729c09eb5d47e2dde6f28
net ipv6: Fix duplicate /proc/sys/net/ipv6/neigh directory entries.

[ Upstream commit 9d2a8fa96a44ba242de3a6f56acaef7a40a97b97 ]

When I was fixing issues with unregisgtering tables under /proc/sys/net/ipv6/neigh
by adding a mount point it appears I missed a critical ordering issue, in the
ipv6 initialization.  I had not realized that ipv6_sysctl_register is called
at the very end of the ipv6 initialization and in particular after we call
neigh_sysctl_register from ndisc_init.

"neigh" needs to be initialized in ipv6_static_sysctl_register which is
the first ipv6 table to initialized, and definitely before ndisc_init.
This removes the weirdness of duplicate tables while still providing a
"neigh" mount point which prevents races in sysctl unregistering.

This was initially reported at https://bugzilla.kernel.org/show_bug.cgi?id=31232
Reported-by: sunkan@zappa.cx
Signed-off-by: Eric W. Biederman <ebiederm@aristanetworks.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
net/ipv6/sysctl_net_ipv6.c