aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/generic/backport-4.19/330-v4.16-netfilter-nf_tables-remove-flag-field-from-struct-nf.patch
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/generic/backport-4.19/330-v4.16-netfilter-nf_tables-remove-flag-field-from-struct-nf.patch')
-rw-r--r--target/linux/generic/backport-4.19/330-v4.16-netfilter-nf_tables-remove-flag-field-from-struct-nf.patch59
1 files changed, 59 insertions, 0 deletions
diff --git a/target/linux/generic/backport-4.19/330-v4.16-netfilter-nf_tables-remove-flag-field-from-struct-nf.patch b/target/linux/generic/backport-4.19/330-v4.16-netfilter-nf_tables-remove-flag-field-from-struct-nf.patch
new file mode 100644
index 0000000000..c599ad79c2
--- /dev/null
+++ b/target/linux/generic/backport-4.19/330-v4.16-netfilter-nf_tables-remove-flag-field-from-struct-nf.patch
@@ -0,0 +1,59 @@
+From: Pablo Neira Ayuso <pablo@netfilter.org>
+Date: Tue, 19 Dec 2017 14:07:52 +0100
+Subject: [PATCH] netfilter: nf_tables: remove flag field from struct
+ nft_af_info
+
+Replace it by a direct check for the netdev protocol family.
+
+Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
+---
+
+--- a/include/net/netfilter/nf_tables.h
++++ b/include/net/netfilter/nf_tables.h
+@@ -959,10 +959,6 @@ struct nft_table {
+ char *name;
+ };
+
+-enum nft_af_flags {
+- NFT_AF_NEEDS_DEV = (1 << 0),
+-};
+-
+ /**
+ * struct nft_af_info - nf_tables address family info
+ *
+@@ -970,14 +966,12 @@ enum nft_af_flags {
+ * @family: address family
+ * @owner: module owner
+ * @tables: used internally
+- * @flags: family flags
+ */
+ struct nft_af_info {
+ struct list_head list;
+ int family;
+ struct module *owner;
+ struct list_head tables;
+- u32 flags;
+ };
+
+ int nft_register_afinfo(struct net *, struct nft_af_info *);
+--- a/net/netfilter/nf_tables_api.c
++++ b/net/netfilter/nf_tables_api.c
+@@ -1376,7 +1376,7 @@ static int nft_chain_parse_hook(struct n
+ hook->type = type;
+
+ hook->dev = NULL;
+- if (afi->flags & NFT_AF_NEEDS_DEV) {
++ if (afi->family == NFPROTO_NETDEV) {
+ char ifname[IFNAMSIZ];
+
+ if (!ha[NFTA_HOOK_DEV]) {
+--- a/net/netfilter/nf_tables_netdev.c
++++ b/net/netfilter/nf_tables_netdev.c
+@@ -41,7 +41,6 @@ nft_do_chain_netdev(void *priv, struct s
+ static struct nft_af_info nft_af_netdev __read_mostly = {
+ .family = NFPROTO_NETDEV,
+ .owner = THIS_MODULE,
+- .flags = NFT_AF_NEEDS_DEV,
+ };
+
+ static int nf_tables_netdev_init_net(struct net *net)