diff options
Diffstat (limited to 'net/ipv6/af_inet6.c')
-rw-r--r-- | net/ipv6/af_inet6.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/net/ipv6/af_inet6.c b/net/ipv6/af_inet6.c index 64135e2a3098..5ab8ba7a5863 100644 --- a/net/ipv6/af_inet6.c +++ b/net/ipv6/af_inet6.c | |||
@@ -849,7 +849,9 @@ static int __init inet6_init(void) | |||
849 | if (if6_proc_init()) | 849 | if (if6_proc_init()) |
850 | goto proc_if6_fail; | 850 | goto proc_if6_fail; |
851 | #endif | 851 | #endif |
852 | ip6_route_init(); | 852 | err = ip6_route_init(); |
853 | if (err) | ||
854 | goto ip6_route_fail; | ||
853 | ip6_flowlabel_init(); | 855 | ip6_flowlabel_init(); |
854 | err = addrconf_init(); | 856 | err = addrconf_init(); |
855 | if (err) | 857 | if (err) |
@@ -874,6 +876,7 @@ out: | |||
874 | addrconf_fail: | 876 | addrconf_fail: |
875 | ip6_flowlabel_cleanup(); | 877 | ip6_flowlabel_cleanup(); |
876 | ip6_route_cleanup(); | 878 | ip6_route_cleanup(); |
879 | ip6_route_fail: | ||
877 | #ifdef CONFIG_PROC_FS | 880 | #ifdef CONFIG_PROC_FS |
878 | if6_proc_exit(); | 881 | if6_proc_exit(); |
879 | proc_if6_fail: | 882 | proc_if6_fail: |
@@ -904,6 +907,7 @@ icmp_fail: | |||
904 | cleanup_ipv6_mibs(); | 907 | cleanup_ipv6_mibs(); |
905 | out_unregister_sock: | 908 | out_unregister_sock: |
906 | sock_unregister(PF_INET6); | 909 | sock_unregister(PF_INET6); |
910 | rtnl_unregister_all(PF_INET6); | ||
907 | out_unregister_raw_proto: | 911 | out_unregister_raw_proto: |
908 | proto_unregister(&rawv6_prot); | 912 | proto_unregister(&rawv6_prot); |
909 | out_unregister_udplite_proto: | 913 | out_unregister_udplite_proto: |