int nft_register_afinfo(struct net *, struct nft_af_info *);
 void nft_unregister_afinfo(struct nft_af_info *);
 
+/**
+ *     struct nf_chain_type - nf_tables chain type info
+ *
+ *     @name: name of the type
+ *     @type: numeric identifier
+ *     @family: address family
+ *     @owner: module owner
+ *     @hook_mask: mask of valid hooks
+ *     @hooks: hookfn overrides
+ */
 struct nf_chain_type {
-       unsigned int            hook_mask;
-       const char              *name;
-       enum nft_chain_type     type;
-       nf_hookfn               *fn[NF_MAX_HOOKS];
-       struct module           *me;
-       int                     family;
+       const char                      *name;
+       enum nft_chain_type             type;
+       int                             family;
+       struct module                   *owner;
+       unsigned int                    hook_mask;
+       nf_hookfn                       *hooks[NF_MAX_HOOKS];
 };
 
 int nft_register_chain_type(const struct nf_chain_type *);
 
 };
 
 static const struct nf_chain_type filter_bridge = {
-       .family         = NFPROTO_BRIDGE,
        .name           = "filter",
        .type           = NFT_CHAIN_T_DEFAULT,
-       .me             = THIS_MODULE,
+       .family         = NFPROTO_BRIDGE,
+       .owner          = THIS_MODULE,
        .hook_mask      = (1 << NF_BR_LOCAL_IN) |
                          (1 << NF_BR_FORWARD) |
                          (1 << NF_BR_LOCAL_OUT),
 
 };
 
 static const struct nf_chain_type filter_arp = {
-       .family         = NFPROTO_ARP,
        .name           = "filter",
        .type           = NFT_CHAIN_T_DEFAULT,
-       .me             = THIS_MODULE,
+       .family         = NFPROTO_ARP,
+       .owner          = THIS_MODULE,
        .hook_mask      = (1 << NF_ARP_IN) |
                          (1 << NF_ARP_OUT) |
                          (1 << NF_ARP_FORWARD),
 
 };
 
 static const struct nf_chain_type filter_ipv4 = {
-       .family         = NFPROTO_IPV4,
        .name           = "filter",
        .type           = NFT_CHAIN_T_DEFAULT,
-       .me             = THIS_MODULE,
+       .family         = NFPROTO_IPV4,
+       .owner          = THIS_MODULE,
        .hook_mask      = (1 << NF_INET_LOCAL_IN) |
                          (1 << NF_INET_LOCAL_OUT) |
                          (1 << NF_INET_FORWARD) |
 
 }
 
 static const struct nf_chain_type nft_chain_nat_ipv4 = {
-       .family         = NFPROTO_IPV4,
        .name           = "nat",
        .type           = NFT_CHAIN_T_NAT,
+       .family         = NFPROTO_IPV4,
+       .owner          = THIS_MODULE,
        .hook_mask      = (1 << NF_INET_PRE_ROUTING) |
                          (1 << NF_INET_POST_ROUTING) |
                          (1 << NF_INET_LOCAL_OUT) |
                          (1 << NF_INET_LOCAL_IN),
-       .fn             = {
+       .hooks          = {
                [NF_INET_PRE_ROUTING]   = nf_nat_prerouting,
                [NF_INET_POST_ROUTING]  = nf_nat_postrouting,
                [NF_INET_LOCAL_OUT]     = nf_nat_output,
                [NF_INET_LOCAL_IN]      = nf_nat_fn,
        },
-       .me             = THIS_MODULE,
 };
 
 static int __init nft_chain_nat_init(void)
 
 }
 
 static const struct nf_chain_type nft_chain_route_ipv4 = {
-       .family         = NFPROTO_IPV4,
        .name           = "route",
        .type           = NFT_CHAIN_T_ROUTE,
+       .family         = NFPROTO_IPV4,
+       .owner          = THIS_MODULE,
        .hook_mask      = (1 << NF_INET_LOCAL_OUT),
-       .fn             = {
+       .hooks          = {
                [NF_INET_LOCAL_OUT]     = nf_route_table_hook,
        },
-       .me             = THIS_MODULE,
 };
 
 static int __init nft_chain_route_init(void)
 
 };
 
 static const struct nf_chain_type filter_ipv6 = {
-       .family         = NFPROTO_IPV6,
        .name           = "filter",
        .type           = NFT_CHAIN_T_DEFAULT,
-       .me             = THIS_MODULE,
+       .family         = NFPROTO_IPV6,
+       .owner          = THIS_MODULE,
        .hook_mask      = (1 << NF_INET_LOCAL_IN) |
                          (1 << NF_INET_LOCAL_OUT) |
                          (1 << NF_INET_FORWARD) |
 
 }
 
 static const struct nf_chain_type nft_chain_nat_ipv6 = {
-       .family         = NFPROTO_IPV6,
        .name           = "nat",
        .type           = NFT_CHAIN_T_NAT,
+       .family         = NFPROTO_IPV6,
+       .owner          = THIS_MODULE,
        .hook_mask      = (1 << NF_INET_PRE_ROUTING) |
                          (1 << NF_INET_POST_ROUTING) |
                          (1 << NF_INET_LOCAL_OUT) |
                          (1 << NF_INET_LOCAL_IN),
-       .fn             = {
+       .hooks          = {
                [NF_INET_PRE_ROUTING]   = nf_nat_ipv6_prerouting,
                [NF_INET_POST_ROUTING]  = nf_nat_ipv6_postrouting,
                [NF_INET_LOCAL_OUT]     = nf_nat_ipv6_output,
                [NF_INET_LOCAL_IN]      = nf_nat_ipv6_fn,
        },
-       .me             = THIS_MODULE,
 };
 
 static int __init nft_chain_nat_ipv6_init(void)
 
 }
 
 static const struct nf_chain_type nft_chain_route_ipv6 = {
-       .family         = NFPROTO_IPV6,
        .name           = "route",
        .type           = NFT_CHAIN_T_ROUTE,
+       .family         = NFPROTO_IPV6,
+        .owner         = THIS_MODULE,
        .hook_mask      = (1 << NF_INET_LOCAL_OUT),
-       .fn             = {
+       .hooks          = {
                 [NF_INET_LOCAL_OUT]    = nf_route_table_hook,
         },
-        .me            = THIS_MODULE,
 };
 
 static int __init nft_chain_route_init(void)
 
 
                if (!(type->hook_mask & (1 << hooknum)))
                        return -EOPNOTSUPP;
-               if (!try_module_get(type->me))
+               if (!try_module_get(type->owner))
                        return -ENOENT;
-               hookfn = type->fn[hooknum];
+               hookfn = type->hooks[hooknum];
 
                basechain = kzalloc(sizeof(*basechain), GFP_KERNEL);
                if (basechain == NULL)
                        err = nf_tables_counters(basechain,
                                                 nla[NFTA_CHAIN_COUNTERS]);
                        if (err < 0) {
-                               module_put(type->me);
+                               module_put(type->owner);
                                kfree(basechain);
                                return err;
                        }
 
                        newstats = alloc_percpu(struct nft_stats);
                        if (newstats == NULL) {
-                               module_put(type->me);
+                               module_put(type->owner);
                                kfree(basechain);
                                return -ENOMEM;
                        }
            chain->flags & NFT_BASE_CHAIN) {
                err = nf_register_hooks(nft_base_chain(chain)->ops, afi->nops);
                if (err < 0) {
-                       module_put(basechain->type->me);
+                       module_put(basechain->type->owner);
                        free_percpu(basechain->stats);
                        kfree(basechain);
                        return err;
        BUG_ON(chain->use > 0);
 
        if (chain->flags & NFT_BASE_CHAIN) {
-               module_put(nft_base_chain(chain)->type->me);
+               module_put(nft_base_chain(chain)->type->owner);
                free_percpu(nft_base_chain(chain)->stats);
                kfree(nft_base_chain(chain));
        } else
 
 };
 
 static const struct nf_chain_type filter_inet = {
-       .family         = NFPROTO_INET,
        .name           = "filter",
        .type           = NFT_CHAIN_T_DEFAULT,
-       .me             = THIS_MODULE,
+       .family         = NFPROTO_INET,
+       .owner          = THIS_MODULE,
        .hook_mask      = (1 << NF_INET_LOCAL_IN) |
                          (1 << NF_INET_LOCAL_OUT) |
                          (1 << NF_INET_FORWARD) |