netfilter: remove struct nf_afinfo and its helper functions
authorPablo Neira Ayuso <pablo@netfilter.org>
Sat, 9 Dec 2017 16:05:53 +0000 (17:05 +0100)
committerPablo Neira Ayuso <pablo@netfilter.org>
Mon, 8 Jan 2018 17:11:02 +0000 (18:11 +0100)
This abstraction has no clients anymore, remove it.

This is what remains from previous authors, so correct copyright
statement after recent modifications and code removal.

Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
include/linux/netfilter.h
net/bridge/netfilter/nf_tables_bridge.c
net/ipv4/netfilter.c
net/ipv6/netfilter.c
net/netfilter/core.c

index 58a169e425f7c414f85308d1217a391a3baa1a6b..85a1a0b32c665df0f09cb906469c76df0f60424a 100644 (file)
@@ -309,16 +309,6 @@ int skb_make_writable(struct sk_buff *skb, unsigned int writable_len);
 struct flowi;
 struct nf_queue_entry;
 
-struct nf_afinfo {
-       unsigned short  family;
-};
-
-extern const struct nf_afinfo __rcu *nf_afinfo[NFPROTO_NUMPROTO];
-static inline const struct nf_afinfo *nf_get_afinfo(unsigned short family)
-{
-       return rcu_dereference(nf_afinfo[family]);
-}
-
 __sum16 nf_checksum(struct sk_buff *skb, unsigned int hook,
                    unsigned int dataoff, u_int8_t protocol,
                    unsigned short family);
@@ -330,9 +320,6 @@ int nf_route(struct net *net, struct dst_entry **dst, struct flowi *fl,
             bool strict, unsigned short family);
 int nf_reroute(struct sk_buff *skb, struct nf_queue_entry *entry);
 
-int nf_register_afinfo(const struct nf_afinfo *afinfo);
-void nf_unregister_afinfo(const struct nf_afinfo *afinfo);
-
 #include <net/flow.h>
 extern void (*nf_nat_decode_session_hook)(struct sk_buff *, struct flowi *);
 
index e7348b49bc0d16d42c50e2f69f3adfce9c3c5579..86774b5c3b731747a7194c20a3ace058464d66e8 100644 (file)
@@ -95,30 +95,23 @@ static const struct nf_chain_type filter_bridge = {
        },
 };
 
-static const struct nf_afinfo nf_br_afinfo = {
-       .family                 = AF_BRIDGE,
-       .route_key_size         = 0,
-};
-
 static int __init nf_tables_bridge_init(void)
 {
        int ret;
 
-       nf_register_afinfo(&nf_br_afinfo);
        ret = nft_register_chain_type(&filter_bridge);
        if (ret < 0)
-               goto err1;
+               return ret;
 
        ret = register_pernet_subsys(&nf_tables_bridge_net_ops);
        if (ret < 0)
-               goto err2;
+               goto err_register_subsys;
 
        return ret;
 
-err2:
+err_register_subsys:
        nft_unregister_chain_type(&filter_bridge);
-err1:
-       nf_unregister_afinfo(&nf_br_afinfo);
+
        return ret;
 }
 
@@ -126,7 +119,6 @@ static void __exit nf_tables_bridge_exit(void)
 {
        unregister_pernet_subsys(&nf_tables_bridge_net_ops);
        nft_unregister_chain_type(&filter_bridge);
-       nf_unregister_afinfo(&nf_br_afinfo);
 }
 
 module_init(nf_tables_bridge_init);
index bd8e161c2f958d3d00436f38225139c7bad29008..e6774ccb7731fe725bbf642d7ff0ee33d63f1359 100644 (file)
@@ -161,13 +161,3 @@ int nf_ip_route(struct net *net, struct dst_entry **dst, struct flowi *fl,
        return 0;
 }
 EXPORT_SYMBOL_GPL(nf_ip_route);
-
-static const struct nf_afinfo nf_ip_afinfo = {
-       .family                 = AF_INET,
-};
-
-static int __init ipv4_netfilter_init(void)
-{
-       return nf_register_afinfo(&nf_ip_afinfo);
-}
-subsys_initcall(ipv4_netfilter_init);
index 18f82a3fb0c01a6a066e1bdcac4224f87f10c41c..d95ceca7ff8f648ff301d91a2e3eb60fc2050f1c 100644 (file)
@@ -174,14 +174,10 @@ static const struct nf_ipv6_ops ipv6ops = {
        .reroute                = nf_ip6_reroute,
 };
 
-static const struct nf_afinfo nf_ip6_afinfo = {
-       .family                 = AF_INET6,
-};
-
 int __init ipv6_netfilter_init(void)
 {
        RCU_INIT_POINTER(nf_ipv6_ops, &ipv6ops);
-       return nf_register_afinfo(&nf_ip6_afinfo);
+       return 0;
 }
 
 /* This can be called from inet6_init() on errors, so it cannot
@@ -190,5 +186,4 @@ int __init ipv6_netfilter_init(void)
 void ipv6_netfilter_fini(void)
 {
        RCU_INIT_POINTER(nf_ipv6_ops, NULL);
-       nf_unregister_afinfo(&nf_ip6_afinfo);
 }
index 606efc9b14e1476fd72a9156080f65189aae6ee9..997dd387d259c0301c436ab2a0ba87afc764baaf 100644 (file)
@@ -4,8 +4,7 @@
  * Thanks to Rob `CmdrTaco' Malda for not influencing this code in any
  * way.
  *
- * Rusty Russell (C)2000 -- This code is GPL.
- * Patrick McHardy (c) 2006-2012
+ * This code is GPL.
  */
 #include <linux/kernel.h>
 #include <linux/netfilter.h>
 
 #include "nf_internals.h"
 
-static DEFINE_MUTEX(afinfo_mutex);
-
-const struct nf_afinfo __rcu *nf_afinfo[NFPROTO_NUMPROTO] __read_mostly;
-EXPORT_SYMBOL(nf_afinfo);
 const struct nf_ipv6_ops __rcu *nf_ipv6_ops __read_mostly;
 EXPORT_SYMBOL_GPL(nf_ipv6_ops);
 
 DEFINE_PER_CPU(bool, nf_skb_duplicated);
 EXPORT_SYMBOL_GPL(nf_skb_duplicated);
 
-int nf_register_afinfo(const struct nf_afinfo *afinfo)
-{
-       mutex_lock(&afinfo_mutex);
-       RCU_INIT_POINTER(nf_afinfo[afinfo->family], afinfo);
-       mutex_unlock(&afinfo_mutex);
-       return 0;
-}
-EXPORT_SYMBOL_GPL(nf_register_afinfo);
-
-void nf_unregister_afinfo(const struct nf_afinfo *afinfo)
-{
-       mutex_lock(&afinfo_mutex);
-       RCU_INIT_POINTER(nf_afinfo[afinfo->family], NULL);
-       mutex_unlock(&afinfo_mutex);
-       synchronize_rcu();
-}
-EXPORT_SYMBOL_GPL(nf_unregister_afinfo);
-
 #ifdef HAVE_JUMP_LABEL
 struct static_key nf_hooks_needed[NFPROTO_NUMPROTO][NF_MAX_HOOKS];
 EXPORT_SYMBOL(nf_hooks_needed);