]> bbs.cooldavid.org Git - net-next-2.6.git/blobdiff - net/ipv4/fib_rules.c
[IPV4]: Check fib4_rules_init failure.
[net-next-2.6.git] / net / ipv4 / fib_rules.c
index afe669dd1bd53f9a7f4d832a9d3de4d884e77700..0751734ecf41b1bf414505ea64a74c3801b1853b 100644 (file)
@@ -311,8 +311,18 @@ static int __init fib_default_rules_init(void)
        return 0;
 }
 
-void __init fib4_rules_init(void)
+int __init fib4_rules_init()
 {
-       BUG_ON(fib_default_rules_init());
+       int err;
+
        fib_rules_register(&init_net, &fib4_rules_ops);
+       err = fib_default_rules_init();
+       if (err < 0)
+               goto fail;
+       return 0;
+
+fail:
+       /* also cleans all rules already added */
+       fib_rules_unregister(&init_net, &fib4_rules_ops);
+       return err;
 }