Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/pablo/nf-next
[cascardo/linux.git] / net / netfilter / core.c
index 857ca9f..2217363 100644 (file)
@@ -304,17 +304,26 @@ static struct pernet_operations netfilter_net_ops = {
        .exit = netfilter_net_exit,
 };
 
-void __init netfilter_init(void)
+int __init netfilter_init(void)
 {
-       int i, h;
+       int i, h, ret;
+
        for (i = 0; i < ARRAY_SIZE(nf_hooks); i++) {
                for (h = 0; h < NF_MAX_HOOKS; h++)
                        INIT_LIST_HEAD(&nf_hooks[i][h]);
        }
 
-       if (register_pernet_subsys(&netfilter_net_ops) < 0)
-               panic("cannot create netfilter proc entry");
+       ret = register_pernet_subsys(&netfilter_net_ops);
+       if (ret < 0)
+               goto err;
+
+       ret = netfilter_log_init();
+       if (ret < 0)
+               goto err_pernet;
 
-       if (netfilter_log_init() < 0)
-               panic("cannot initialize nf_log");
+       return 0;
+err_pernet:
+       unregister_pernet_subsys(&netfilter_net_ops);
+err:
+       return ret;
 }