netfilter: ebtables: do not hook tables by default
[linux-2.6-microblaze.git] / net / bridge / netfilter / ebtable_broute.c
index 020b148..a7af4ea 100644 (file)
@@ -98,7 +98,7 @@ static const struct nf_hook_ops ebt_ops_broute = {
        .priority       = NF_BR_PRI_FIRST,
 };
 
-static int __net_init broute_net_init(struct net *net)
+static int broute_table_init(struct net *net)
 {
        return ebt_register_table(net, &broute_table, &ebt_ops_broute);
 }
@@ -114,19 +114,30 @@ static void __net_exit broute_net_exit(struct net *net)
 }
 
 static struct pernet_operations broute_net_ops = {
-       .init = broute_net_init,
        .exit = broute_net_exit,
        .pre_exit = broute_net_pre_exit,
 };
 
 static int __init ebtable_broute_init(void)
 {
-       return register_pernet_subsys(&broute_net_ops);
+       int ret = ebt_register_template(&broute_table, broute_table_init);
+
+       if (ret)
+               return ret;
+
+       ret = register_pernet_subsys(&broute_net_ops);
+       if (ret) {
+               ebt_unregister_template(&broute_table);
+               return ret;
+       }
+
+       return 0;
 }
 
 static void __exit ebtable_broute_fini(void)
 {
        unregister_pernet_subsys(&broute_net_ops);
+       ebt_unregister_template(&broute_table);
 }
 
 module_init(ebtable_broute_init);