summaryrefslogtreecommitdiffstats
path: root/net/ipv6
diff options
context:
space:
mode:
authorDaniel Lezcano <dlezcano@fr.ibm.com>2007-12-07 00:44:29 -0800
committerDavid S. Miller <davem@davemloft.net>2008-01-28 14:56:47 -0800
commite2fddf5e96df4ac26f2e9ce63053d51cdf3cfe1e (patch)
tree283cf8f8c64fedd4d1565fc4210c2f29c154d00d /net/ipv6
parent433d49c3bb14b8a2351fe97df8359e4ad0de4c7c (diff)
[IPV6]: Make af_inet6 to check ip6_route_init return value.
The af_inet6 initialization function does not check the return code of the route initilization, so if something goes wrong, the protocol initialization will continue anyway. This patch takes into account the modification made in the different route's initialization subroutines to check the return value and to make the protocol initialization to fail. Signed-off-by: Daniel Lezcano <dlezcano@fr.ibm.com> Acked-by: Benjamin Thery <benjamin.thery@bull.net> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv6')
-rw-r--r--net/ipv6/af_inet6.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/net/ipv6/af_inet6.c b/net/ipv6/af_inet6.c
index 64135e2a309..5ab8ba7a586 100644
--- a/net/ipv6/af_inet6.c
+++ b/net/ipv6/af_inet6.c
@@ -849,7 +849,9 @@ static int __init inet6_init(void)
if (if6_proc_init())
goto proc_if6_fail;
#endif
- ip6_route_init();
+ err = ip6_route_init();
+ if (err)
+ goto ip6_route_fail;
ip6_flowlabel_init();
err = addrconf_init();
if (err)
@@ -874,6 +876,7 @@ out:
addrconf_fail:
ip6_flowlabel_cleanup();
ip6_route_cleanup();
+ip6_route_fail:
#ifdef CONFIG_PROC_FS
if6_proc_exit();
proc_if6_fail:
@@ -904,6 +907,7 @@ icmp_fail:
cleanup_ipv6_mibs();
out_unregister_sock:
sock_unregister(PF_INET6);
+ rtnl_unregister_all(PF_INET6);
out_unregister_raw_proto:
proto_unregister(&rawv6_prot);
out_unregister_udplite_proto: