summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPablo Neira Ayuso <pablo@netfilter.org>2019-11-04 16:52:42 +0300
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2019-12-05 00:33:31 +0300
commitcd73a78a6f91db5ebf038b5edc657e1f2ee8618c (patch)
tree5601dadc65eaa355b8e2355ffeb75cfd9e26f38d
parent7dea1a5961855c456da9ef7215723df346212729 (diff)
downloadlinux-cd73a78a6f91db5ebf038b5edc657e1f2ee8618c.tar.xz
netfilter: nf_tables_offload: skip EBUSY on chain update
[ Upstream commit 88c749840dff58e7a40e18bf9bdace15f27ef259 ] Do not try to bind a chain again if it exists, otherwise the driver returns EBUSY. Fixes: c9626a2cbdb2 ("netfilter: nf_tables: add hardware offload support") Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org> Signed-off-by: Sasha Levin <sashal@kernel.org>
-rw-r--r--net/netfilter/nf_tables_offload.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/net/netfilter/nf_tables_offload.c b/net/netfilter/nf_tables_offload.c
index c0d18c1d77ac..04fbab60e808 100644
--- a/net/netfilter/nf_tables_offload.c
+++ b/net/netfilter/nf_tables_offload.c
@@ -241,7 +241,8 @@ int nft_flow_rule_offload_commit(struct net *net)
switch (trans->msg_type) {
case NFT_MSG_NEWCHAIN:
- if (!(trans->ctx.chain->flags & NFT_CHAIN_HW_OFFLOAD))
+ if (!(trans->ctx.chain->flags & NFT_CHAIN_HW_OFFLOAD) ||
+ nft_trans_chain_update(trans))
continue;
err = nft_flow_offload_chain(trans, FLOW_BLOCK_BIND);