]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - net/core/fib_rules.c
Merge git://git.kernel.org/pub/scm/linux/kernel/git/czankel/xtensa-2.6
[linux-2.6-omap-h63xx.git] / net / core / fib_rules.c
index 277a2302eb3abb666574a5b3b7dc2714f45ef7c4..32b3a0152d7adba2079e5a1bc5f5ba9001037996 100644 (file)
@@ -69,7 +69,7 @@ static void rules_ops_put(struct fib_rules_ops *ops)
 static void flush_route_cache(struct fib_rules_ops *ops)
 {
        if (ops->flush_cache)
-               ops->flush_cache();
+               ops->flush_cache(ops);
 }
 
 int fib_rules_register(struct fib_rules_ops *ops)
@@ -664,17 +664,18 @@ static int __init fib_rules_init(void)
        rtnl_register(PF_UNSPEC, RTM_DELRULE, fib_nl_delrule, NULL);
        rtnl_register(PF_UNSPEC, RTM_GETRULE, NULL, fib_nl_dumprule);
 
-       err = register_netdevice_notifier(&fib_rules_notifier);
+       err = register_pernet_subsys(&fib_rules_net_ops);
        if (err < 0)
                goto fail;
 
-       err = register_pernet_subsys(&fib_rules_net_ops);
+       err = register_netdevice_notifier(&fib_rules_notifier);
        if (err < 0)
                goto fail_unregister;
+
        return 0;
 
 fail_unregister:
-       unregister_netdevice_notifier(&fib_rules_notifier);
+       unregister_pernet_subsys(&fib_rules_net_ops);
 fail:
        rtnl_unregister(PF_UNSPEC, RTM_NEWRULE);
        rtnl_unregister(PF_UNSPEC, RTM_DELRULE);