diff options
-rw-r--r-- | net/ipv6/af_inet6.c | 27 |
1 files changed, 14 insertions, 13 deletions
diff --git a/net/ipv6/af_inet6.c b/net/ipv6/af_inet6.c index 60b8a2254046..af5b30787662 100644 --- a/net/ipv6/af_inet6.c +++ b/net/ipv6/af_inet6.c | |||
@@ -934,12 +934,6 @@ static int __init inet6_init(void) | |||
934 | err = register_pernet_subsys(&inet6_net_ops); | 934 | err = register_pernet_subsys(&inet6_net_ops); |
935 | if (err) | 935 | if (err) |
936 | goto register_pernet_fail; | 936 | goto register_pernet_fail; |
937 | |||
938 | #ifdef CONFIG_SYSCTL | ||
939 | err = ipv6_sysctl_register(); | ||
940 | if (err) | ||
941 | goto sysctl_fail; | ||
942 | #endif | ||
943 | err = icmpv6_init(); | 937 | err = icmpv6_init(); |
944 | if (err) | 938 | if (err) |
945 | goto icmp_fail; | 939 | goto icmp_fail; |
@@ -1006,9 +1000,19 @@ static int __init inet6_init(void) | |||
1006 | err = ipv6_packet_init(); | 1000 | err = ipv6_packet_init(); |
1007 | if (err) | 1001 | if (err) |
1008 | goto ipv6_packet_fail; | 1002 | goto ipv6_packet_fail; |
1003 | |||
1004 | #ifdef CONFIG_SYSCTL | ||
1005 | err = ipv6_sysctl_register(); | ||
1006 | if (err) | ||
1007 | goto sysctl_fail; | ||
1008 | #endif | ||
1009 | out: | 1009 | out: |
1010 | return err; | 1010 | return err; |
1011 | 1011 | ||
1012 | #ifdef CONFIG_SYSCTL | ||
1013 | sysctl_fail: | ||
1014 | ipv6_packet_cleanup(); | ||
1015 | #endif | ||
1012 | ipv6_packet_fail: | 1016 | ipv6_packet_fail: |
1013 | tcpv6_exit(); | 1017 | tcpv6_exit(); |
1014 | tcpv6_fail: | 1018 | tcpv6_fail: |
@@ -1050,10 +1054,6 @@ igmp_fail: | |||
1050 | ndisc_fail: | 1054 | ndisc_fail: |
1051 | icmpv6_cleanup(); | 1055 | icmpv6_cleanup(); |
1052 | icmp_fail: | 1056 | icmp_fail: |
1053 | #ifdef CONFIG_SYSCTL | ||
1054 | ipv6_sysctl_unregister(); | ||
1055 | sysctl_fail: | ||
1056 | #endif | ||
1057 | unregister_pernet_subsys(&inet6_net_ops); | 1057 | unregister_pernet_subsys(&inet6_net_ops); |
1058 | register_pernet_fail: | 1058 | register_pernet_fail: |
1059 | cleanup_ipv6_mibs(); | 1059 | cleanup_ipv6_mibs(); |
@@ -1083,6 +1083,9 @@ static void __exit inet6_exit(void) | |||
1083 | /* Disallow any further netlink messages */ | 1083 | /* Disallow any further netlink messages */ |
1084 | rtnl_unregister_all(PF_INET6); | 1084 | rtnl_unregister_all(PF_INET6); |
1085 | 1085 | ||
1086 | #ifdef CONFIG_SYSCTL | ||
1087 | ipv6_sysctl_unregister(); | ||
1088 | #endif | ||
1086 | udpv6_exit(); | 1089 | udpv6_exit(); |
1087 | #ifdef CONFIG_IP_UDPLITE | 1090 | #ifdef CONFIG_IP_UDPLITE |
1088 | udplitev6_exit(); | 1091 | udplitev6_exit(); |
@@ -1112,9 +1115,7 @@ static void __exit inet6_exit(void) | |||
1112 | ndisc_cleanup(); | 1115 | ndisc_cleanup(); |
1113 | icmpv6_cleanup(); | 1116 | icmpv6_cleanup(); |
1114 | rawv6_exit(); | 1117 | rawv6_exit(); |
1115 | #ifdef CONFIG_SYSCTL | 1118 | |
1116 | ipv6_sysctl_unregister(); | ||
1117 | #endif | ||
1118 | unregister_pernet_subsys(&inet6_net_ops); | 1119 | unregister_pernet_subsys(&inet6_net_ops); |
1119 | cleanup_ipv6_mibs(); | 1120 | cleanup_ipv6_mibs(); |
1120 | proto_unregister(&rawv6_prot); | 1121 | proto_unregister(&rawv6_prot); |