Skip to content

Commit

Permalink
netfilter: nf_tables_offload: Pass callback list to nft_setup_cb_call()
Browse files Browse the repository at this point in the history
This allows to reuse nft_setup_cb_call() from the callback unbind path.

Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
  • Loading branch information
Pablo Neira Ayuso committed Oct 23, 2019
1 parent ead3952 commit b582888
Showing 1 changed file with 5 additions and 4 deletions.
9 changes: 5 additions & 4 deletions net/netfilter/nf_tables_offload.c
Original file line number Diff line number Diff line change
Expand Up @@ -132,13 +132,13 @@ static void nft_flow_offload_common_init(struct flow_cls_common_offload *common,
common->extack = extack;
}

static int nft_setup_cb_call(struct nft_base_chain *basechain,
enum tc_setup_type type, void *type_data)
static int nft_setup_cb_call(enum tc_setup_type type, void *type_data,
struct list_head *cb_list)
{
struct flow_block_cb *block_cb;
int err;

list_for_each_entry(block_cb, &basechain->flow_block.cb_list, list) {
list_for_each_entry(block_cb, cb_list, list) {
err = block_cb->cb(type, type_data, block_cb->cb_priv);
if (err < 0)
return err;
Expand Down Expand Up @@ -180,7 +180,8 @@ static int nft_flow_offload_rule(struct nft_chain *chain,
if (flow)
cls_flow.rule = flow->rule;

return nft_setup_cb_call(basechain, TC_SETUP_CLSFLOWER, &cls_flow);
return nft_setup_cb_call(TC_SETUP_CLSFLOWER, &cls_flow,
&basechain->flow_block.cb_list);
}

static int nft_flow_offload_bind(struct flow_block_offload *bo,
Expand Down

0 comments on commit b582888

Please sign in to comment.