aboutsummaryrefslogtreecommitdiffstats
path: root/net/core
diff options
context:
space:
mode:
authorPablo Neira Ayuso <pablo@netfilter.org>2022-06-06 17:31:29 +0200
committerPablo Neira Ayuso <pablo@netfilter.org>2022-06-06 19:19:15 +0200
commit3a41c64d9c1185a2f3a184015e2a9b78bfc99c71 (patch)
treed7359ab63c6ffb3ae05ea7552f688bf642fbd5d2 /net/core
parentnetfilter: nf_tables: memleak flow rule from commit path (diff)
downloadlinux-dev-3a41c64d9c1185a2f3a184015e2a9b78bfc99c71.tar.xz
linux-dev-3a41c64d9c1185a2f3a184015e2a9b78bfc99c71.zip
netfilter: nf_tables: bail out early if hardware offload is not supported
If user requests for NFT_CHAIN_HW_OFFLOAD, then check if either device provides the .ndo_setup_tc interface or there is an indirect flow block that has been registered. Otherwise, bail out early from the preparation phase. Moreover, validate that family == NFPROTO_NETDEV and hook is NF_NETDEV_INGRESS. Fixes: c9626a2cbdb2 ("netfilter: nf_tables: add hardware offload support") Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Diffstat (limited to 'net/core')
-rw-r--r--net/core/flow_offload.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/net/core/flow_offload.c b/net/core/flow_offload.c
index 73f68d4625f3..929f6379a279 100644
--- a/net/core/flow_offload.c
+++ b/net/core/flow_offload.c
@@ -595,3 +595,9 @@ int flow_indr_dev_setup_offload(struct net_device *dev, struct Qdisc *sch,
return (bo && list_empty(&bo->cb_list)) ? -EOPNOTSUPP : count;
}
EXPORT_SYMBOL(flow_indr_dev_setup_offload);
+
+bool flow_indr_dev_exists(void)
+{
+ return !list_empty(&flow_block_indr_dev_list);
+}
+EXPORT_SYMBOL(flow_indr_dev_exists);