static DEFINE_MUTEX(nf_ct_proto_mutex);
 
 #ifdef CONFIG_SYSCTL
-static int
-nf_ct_register_sysctl(struct net *net,
-                     struct ctl_table_header **header,
-                     const char *path,
-                     struct ctl_table *table)
-{
-       if (*header == NULL) {
-               *header = register_net_sysctl(net, path, table);
-               if (*header == NULL)
-                       return -ENOMEM;
-       }
-
-       return 0;
-}
-
-static void
-nf_ct_unregister_sysctl(struct ctl_table_header **header,
-                       struct ctl_table **table,
-                       unsigned int users)
-{
-       if (users > 0)
-               return;
-
-       unregister_net_sysctl_table(*header);
-       kfree(*table);
-       *header = NULL;
-       *table = NULL;
-}
-
 __printf(5, 6)
 void nf_l4proto_log_invalid(const struct sk_buff *skb,
                            struct net *net,
        return NULL;
 }
 
-static
-int nf_ct_l4proto_register_sysctl(struct net *net,
-                                 struct nf_proto_net *pn)
-{
-       int err = 0;
-
-#ifdef CONFIG_SYSCTL
-       if (pn->ctl_table != NULL) {
-               err = nf_ct_register_sysctl(net,
-                                           &pn->ctl_table_header,
-                                           "net/netfilter",
-                                           pn->ctl_table);
-               if (err < 0) {
-                       if (!pn->users) {
-                               kfree(pn->ctl_table);
-                               pn->ctl_table = NULL;
-                       }
-               }
-       }
-#endif /* CONFIG_SYSCTL */
-       return err;
-}
-
-static
-void nf_ct_l4proto_unregister_sysctl(struct nf_proto_net *pn)
-{
-#ifdef CONFIG_SYSCTL
-       if (pn->ctl_table_header != NULL)
-               nf_ct_unregister_sysctl(&pn->ctl_table_header,
-                                       &pn->ctl_table,
-                                       pn->users);
-#endif /* CONFIG_SYSCTL */
-}
-
 /* FIXME: Allow NULL functions and sub in pointers to generic for
    them. --RR */
 int nf_ct_l4proto_register_one(const struct nf_conntrack_l4proto *l4proto)
        if (pn == NULL)
                goto out;
 
-       ret = nf_ct_l4proto_register_sysctl(net, pn);
-       if (ret < 0)
-               goto out;
-
        pn->users++;
 out:
        return ret;
                return;
 
        pn->users--;
-       nf_ct_l4proto_unregister_sysctl(pn);
 }
 
 static void
        err = nf_conntrack_l4proto_generic.init_net(net);
        if (err < 0)
                return err;
-       err = nf_ct_l4proto_register_sysctl(net,
-                                           pn);
-       if (err < 0)
-               return err;
 
        err = nf_ct_l4proto_pernet_register(net, builtin_l4proto,
                                            ARRAY_SIZE(builtin_l4proto));
-       if (err < 0) {
-               nf_ct_l4proto_unregister_sysctl(pn);
+       if (err < 0)
                return err;
-       }
 
        pn->users++;
        return 0;
        nf_ct_l4proto_pernet_unregister(net, builtin_l4proto,
                                        ARRAY_SIZE(builtin_l4proto));
        pn->users--;
-       nf_ct_l4proto_unregister_sysctl(pn);
 #ifdef CONFIG_NF_CT_PROTO_GRE
        nf_ct_gre_keymap_flush(net);
 #endif