Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 94911fe3 authored by Benjamin Thery's avatar Benjamin Thery Committed by David S. Miller
Browse files

[NETNS][IPV6] Move sysctl initialization later on in the IPv6 init sequence



This patch moves initialization of IPv6 sysctl stuff at the end of
IPv6 initialization.

This will be helpful for network namespaces where some sysctl entries
depend on per-namespace variables, that need to be allocated and
initialized before they are referenced by sysctl.

Signed-off-by: default avatarBenjamin Thery <benjamin.thery@bull.net>
Signed-off-by: default avatarDaniel Lezcano <dlezcano@fr.ibm.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 6b3d6263
Loading
Loading
Loading
Loading
+14 −13
Original line number Diff line number Diff line
@@ -934,12 +934,6 @@ static int __init inet6_init(void)
	err = register_pernet_subsys(&inet6_net_ops);
	if (err)
		goto register_pernet_fail;

#ifdef CONFIG_SYSCTL
	err = ipv6_sysctl_register();
	if (err)
		goto sysctl_fail;
#endif
	err = icmpv6_init();
	if (err)
		goto icmp_fail;
@@ -1006,9 +1000,19 @@ static int __init inet6_init(void)
	err = ipv6_packet_init();
	if (err)
		goto ipv6_packet_fail;

#ifdef CONFIG_SYSCTL
	err = ipv6_sysctl_register();
	if (err)
		goto sysctl_fail;
#endif
out:
	return err;

#ifdef CONFIG_SYSCTL
sysctl_fail:
	ipv6_packet_cleanup();
#endif
ipv6_packet_fail:
	tcpv6_exit();
tcpv6_fail:
@@ -1050,10 +1054,6 @@ igmp_fail:
ndisc_fail:
	icmpv6_cleanup();
icmp_fail:
#ifdef CONFIG_SYSCTL
	ipv6_sysctl_unregister();
sysctl_fail:
#endif
	unregister_pernet_subsys(&inet6_net_ops);
register_pernet_fail:
	cleanup_ipv6_mibs();
@@ -1083,6 +1083,9 @@ static void __exit inet6_exit(void)
	/* Disallow any further netlink messages */
	rtnl_unregister_all(PF_INET6);

#ifdef CONFIG_SYSCTL
	ipv6_sysctl_unregister();
#endif
	udpv6_exit();
#ifdef CONFIG_IP_UDPLITE
	udplitev6_exit();
@@ -1112,9 +1115,7 @@ static void __exit inet6_exit(void)
	ndisc_cleanup();
	icmpv6_cleanup();
	rawv6_exit();
#ifdef CONFIG_SYSCTL
	ipv6_sysctl_unregister();
#endif

	unregister_pernet_subsys(&inet6_net_ops);
	cleanup_ipv6_mibs();
	proto_unregister(&rawv6_prot);