Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 98319cb9 authored by Pablo Neira Ayuso's avatar Pablo Neira Ayuso
Browse files

netfilter: nf_tables: get rid of struct nft_af_info abstraction



Remove the infrastructure to register/unregister nft_af_info structure,
this structure stores no useful information anymore.

Signed-off-by: default avatarPablo Neira Ayuso <pablo@netfilter.org>
parent dd4cbef7
Loading
Loading
Loading
Loading
+2 −21
Original line number Diff line number Diff line
@@ -960,28 +960,12 @@ struct nft_table {
	struct list_head		flowtables;
	u64				hgenerator;
	u32				use;
	u16				flags:14,
	u16				family:6,
					flags:8,
					genmask:2;
	struct nft_af_info		*afi;
	char				*name;
};

/**
 *	struct nft_af_info - nf_tables address family info
 *
 *	@list: used internally
 *	@family: address family
 *	@owner: module owner
 */
struct nft_af_info {
	struct list_head		list;
	int				family;
	struct module			*owner;
};

int nft_register_afinfo(struct nft_af_info *);
void nft_unregister_afinfo(struct nft_af_info *);

int nft_register_chain_type(const struct nf_chain_type *);
void nft_unregister_chain_type(const struct nf_chain_type *);

@@ -1146,9 +1130,6 @@ void nft_trace_init(struct nft_traceinfo *info, const struct nft_pktinfo *pkt,

void nft_trace_notify(struct nft_traceinfo *info);

#define MODULE_ALIAS_NFT_FAMILY(family)	\
	MODULE_ALIAS("nft-afinfo-" __stringify(family))

#define MODULE_ALIAS_NFT_CHAIN(family, name) \
	MODULE_ALIAS("nft-chain-" __stringify(family) "-" name)

+2 −23
Original line number Diff line number Diff line
@@ -42,11 +42,6 @@ nft_do_chain_bridge(void *priv,
	return nft_do_chain(&pkt, priv);
}

static struct nft_af_info nft_af_bridge __read_mostly = {
	.family		= NFPROTO_BRIDGE,
	.owner		= THIS_MODULE,
};

static const struct nf_chain_type filter_bridge = {
	.name		= "filter",
	.type		= NFT_CHAIN_T_DEFAULT,
@@ -68,28 +63,12 @@ static const struct nf_chain_type filter_bridge = {

static int __init nf_tables_bridge_init(void)
{
	int ret;

	ret = nft_register_afinfo(&nft_af_bridge);
	if (ret < 0)
		return ret;

	ret = nft_register_chain_type(&filter_bridge);
	if (ret < 0)
		goto err_register_chain;

	return ret;

err_register_chain:
	nft_unregister_chain_type(&filter_bridge);

	return ret;
	return nft_register_chain_type(&filter_bridge);
}

static void __exit nf_tables_bridge_exit(void)
{
	nft_unregister_chain_type(&filter_bridge);
	nft_unregister_afinfo(&nft_af_bridge);
}

module_init(nf_tables_bridge_init);
@@ -97,4 +76,4 @@ module_exit(nf_tables_bridge_exit);

MODULE_LICENSE("GPL");
MODULE_AUTHOR("Patrick McHardy <kaber@trash.net>");
MODULE_ALIAS_NFT_FAMILY(AF_BRIDGE);
MODULE_ALIAS_NFT_CHAIN(AF_BRIDGE, "filter");
+2 −23
Original line number Diff line number Diff line
@@ -27,11 +27,6 @@ nft_do_chain_arp(void *priv,
	return nft_do_chain(&pkt, priv);
}

static struct nft_af_info nft_af_arp __read_mostly = {
	.family		= NFPROTO_ARP,
	.owner		= THIS_MODULE,
};

static const struct nf_chain_type filter_arp = {
	.name		= "filter",
	.type		= NFT_CHAIN_T_DEFAULT,
@@ -47,28 +42,12 @@ static const struct nf_chain_type filter_arp = {

static int __init nf_tables_arp_init(void)
{
	int ret;

	ret = nft_register_afinfo(&nft_af_arp);
	if (ret < 0)
		return ret;

	ret = nft_register_chain_type(&filter_arp);
	if (ret < 0)
		goto err_register_chain;

	return 0;

err_register_chain:
	nft_unregister_chain_type(&filter_arp);

	return ret;
	return nft_register_chain_type(&filter_arp);
}

static void __exit nf_tables_arp_exit(void)
{
	nft_unregister_chain_type(&filter_arp);
	nft_unregister_afinfo(&nft_af_arp);
}

module_init(nf_tables_arp_init);
@@ -76,4 +55,4 @@ module_exit(nf_tables_arp_exit);

MODULE_LICENSE("GPL");
MODULE_AUTHOR("Patrick McHardy <kaber@trash.net>");
MODULE_ALIAS_NFT_FAMILY(3); /* NFPROTO_ARP */
MODULE_ALIAS_NFT_CHAIN(3, "filter"); /* NFPROTO_ARP */
+2 −22
Original line number Diff line number Diff line
@@ -30,11 +30,6 @@ static unsigned int nft_do_chain_ipv4(void *priv,
	return nft_do_chain(&pkt, priv);
}

static struct nft_af_info nft_af_ipv4 __read_mostly = {
	.family		= NFPROTO_IPV4,
	.owner		= THIS_MODULE,
};

static const struct nf_chain_type filter_ipv4 = {
	.name		= "filter",
	.type		= NFT_CHAIN_T_DEFAULT,
@@ -56,27 +51,12 @@ static const struct nf_chain_type filter_ipv4 = {

static int __init nf_tables_ipv4_init(void)
{
	int ret;

	ret = nft_register_afinfo(&nft_af_ipv4);
	if (ret < 0)
		return ret;

	ret = nft_register_chain_type(&filter_ipv4);
	if (ret < 0)
		goto err_register_chain;

	return 0;

err_register_chain:
	nft_unregister_afinfo(&nft_af_ipv4);
	return ret;
	return nft_register_chain_type(&filter_ipv4);
}

static void __exit nf_tables_ipv4_exit(void)
{
	nft_unregister_chain_type(&filter_ipv4);
	nft_unregister_afinfo(&nft_af_ipv4);
}

module_init(nf_tables_ipv4_init);
@@ -84,4 +64,4 @@ module_exit(nf_tables_ipv4_exit);

MODULE_LICENSE("GPL");
MODULE_AUTHOR("Patrick McHardy <kaber@trash.net>");
MODULE_ALIAS_NFT_FAMILY(AF_INET);
MODULE_ALIAS_NFT_CHAIN(AF_INET, "filter");
+2 −22
Original line number Diff line number Diff line
@@ -28,11 +28,6 @@ static unsigned int nft_do_chain_ipv6(void *priv,
	return nft_do_chain(&pkt, priv);
}

static struct nft_af_info nft_af_ipv6 __read_mostly = {
	.family		= NFPROTO_IPV6,
	.owner		= THIS_MODULE,
};

static const struct nf_chain_type filter_ipv6 = {
	.name		= "filter",
	.type		= NFT_CHAIN_T_DEFAULT,
@@ -54,26 +49,11 @@ static const struct nf_chain_type filter_ipv6 = {

static int __init nf_tables_ipv6_init(void)
{
	int ret;

	ret = nft_register_afinfo(&nft_af_ipv6);
	if (ret < 0)
		return ret;

	ret = nft_register_chain_type(&filter_ipv6);
	if (ret < 0)
		goto err_register_chain;

	return 0;

err_register_chain:
	nft_unregister_afinfo(&nft_af_ipv6);
	return ret;
	return nft_register_chain_type(&filter_ipv6);
}

static void __exit nf_tables_ipv6_exit(void)
{
	nft_unregister_afinfo(&nft_af_ipv6);
	nft_unregister_chain_type(&filter_ipv6);
}

@@ -82,4 +62,4 @@ module_exit(nf_tables_ipv6_exit);

MODULE_LICENSE("GPL");
MODULE_AUTHOR("Patrick McHardy <kaber@trash.net>");
MODULE_ALIAS_NFT_FAMILY(AF_INET6);
MODULE_ALIAS_NFT_CHAIN(AF_INET6, "filter");
Loading