Home
last modified time | relevance | path

Searched refs:block_cb (Results 1 – 10 of 10) sorted by relevance

/Linux-v5.4/net/core/
Dflow_offload.c174 struct flow_block_cb *block_cb; in flow_block_cb_alloc() local
176 block_cb = kzalloc(sizeof(*block_cb), GFP_KERNEL); in flow_block_cb_alloc()
177 if (!block_cb) in flow_block_cb_alloc()
180 block_cb->cb = cb; in flow_block_cb_alloc()
181 block_cb->cb_ident = cb_ident; in flow_block_cb_alloc()
182 block_cb->cb_priv = cb_priv; in flow_block_cb_alloc()
183 block_cb->release = release; in flow_block_cb_alloc()
185 return block_cb; in flow_block_cb_alloc()
189 void flow_block_cb_free(struct flow_block_cb *block_cb) in flow_block_cb_free() argument
191 if (block_cb->release) in flow_block_cb_free()
[all …]
/Linux-v5.4/drivers/net/ethernet/mscc/
Docelot_tc.c136 struct flow_block_cb *block_cb; in ocelot_setup_tc_block() local
159 block_cb = flow_block_cb_alloc(cb, port, port, NULL); in ocelot_setup_tc_block()
160 if (IS_ERR(block_cb)) in ocelot_setup_tc_block()
161 return PTR_ERR(block_cb); in ocelot_setup_tc_block()
165 flow_block_cb_free(block_cb); in ocelot_setup_tc_block()
168 flow_block_cb_add(block_cb, f); in ocelot_setup_tc_block()
169 list_add_tail(&block_cb->driver_list, f->driver_block_list); in ocelot_setup_tc_block()
172 block_cb = flow_block_cb_lookup(f->block, cb, port); in ocelot_setup_tc_block()
173 if (!block_cb) in ocelot_setup_tc_block()
177 flow_block_cb_remove(block_cb, f); in ocelot_setup_tc_block()
[all …]
Docelot_flower.c307 struct flow_block_cb *block_cb; in ocelot_setup_tc_block_flower_bind() local
313 block_cb = flow_block_cb_lookup(f->block, in ocelot_setup_tc_block_flower_bind()
315 if (!block_cb) { in ocelot_setup_tc_block_flower_bind()
320 block_cb = flow_block_cb_alloc(ocelot_setup_tc_block_cb_flower, in ocelot_setup_tc_block_flower_bind()
323 if (IS_ERR(block_cb)) { in ocelot_setup_tc_block_flower_bind()
324 ret = PTR_ERR(block_cb); in ocelot_setup_tc_block_flower_bind()
327 flow_block_cb_add(block_cb, f); in ocelot_setup_tc_block_flower_bind()
328 list_add_tail(&block_cb->driver_list, f->driver_block_list); in ocelot_setup_tc_block_flower_bind()
330 port_block = flow_block_cb_priv(block_cb); in ocelot_setup_tc_block_flower_bind()
333 flow_block_cb_incref(block_cb); in ocelot_setup_tc_block_flower_bind()
[all …]
/Linux-v5.4/include/net/
Dflow_offload.h316 void flow_block_cb_free(struct flow_block_cb *block_cb);
321 void *flow_block_cb_priv(struct flow_block_cb *block_cb);
322 void flow_block_cb_incref(struct flow_block_cb *block_cb);
323 unsigned int flow_block_cb_decref(struct flow_block_cb *block_cb);
325 static inline void flow_block_cb_add(struct flow_block_cb *block_cb, in flow_block_cb_add() argument
328 list_add_tail(&block_cb->list, &offload->cb_list); in flow_block_cb_add()
331 static inline void flow_block_cb_remove(struct flow_block_cb *block_cb, in flow_block_cb_remove() argument
334 list_move(&block_cb->list, &offload->cb_list); in flow_block_cb_remove()
/Linux-v5.4/net/netfilter/
Dnf_tables_offload.c138 struct flow_block_cb *block_cb; in nft_setup_cb_call() local
141 list_for_each_entry(block_cb, &basechain->flow_block.cb_list, list) { in nft_setup_cb_call()
142 err = block_cb->cb(type, type_data, block_cb->cb_priv); in nft_setup_cb_call()
196 struct flow_block_cb *block_cb, *next; in nft_flow_offload_unbind() local
198 list_for_each_entry_safe(block_cb, next, &bo->cb_list, list) { in nft_flow_offload_unbind()
199 list_del(&block_cb->list); in nft_flow_offload_unbind()
200 flow_block_cb_free(block_cb); in nft_flow_offload_unbind()
/Linux-v5.4/drivers/net/ethernet/netronome/nfp/flower/
Doffload.c1476 struct flow_block_cb *block_cb; in nfp_flower_setup_tc_block() local
1491 block_cb = flow_block_cb_alloc(nfp_flower_setup_tc_block_cb, in nfp_flower_setup_tc_block()
1493 if (IS_ERR(block_cb)) in nfp_flower_setup_tc_block()
1494 return PTR_ERR(block_cb); in nfp_flower_setup_tc_block()
1496 flow_block_cb_add(block_cb, f); in nfp_flower_setup_tc_block()
1497 list_add_tail(&block_cb->driver_list, &nfp_block_cb_list); in nfp_flower_setup_tc_block()
1500 block_cb = flow_block_cb_lookup(f->block, in nfp_flower_setup_tc_block()
1503 if (!block_cb) in nfp_flower_setup_tc_block()
1506 flow_block_cb_remove(block_cb, f); in nfp_flower_setup_tc_block()
1507 list_del(&block_cb->driver_list); in nfp_flower_setup_tc_block()
[all …]
/Linux-v5.4/net/dsa/
Dslave.c998 struct flow_block_cb *block_cb; in dsa_slave_setup_tc_block() local
1015 block_cb = flow_block_cb_alloc(cb, dev, dev, NULL); in dsa_slave_setup_tc_block()
1016 if (IS_ERR(block_cb)) in dsa_slave_setup_tc_block()
1017 return PTR_ERR(block_cb); in dsa_slave_setup_tc_block()
1019 flow_block_cb_add(block_cb, f); in dsa_slave_setup_tc_block()
1020 list_add_tail(&block_cb->driver_list, &dsa_slave_block_cb_list); in dsa_slave_setup_tc_block()
1023 block_cb = flow_block_cb_lookup(f->block, cb, dev); in dsa_slave_setup_tc_block()
1024 if (!block_cb) in dsa_slave_setup_tc_block()
1027 flow_block_cb_remove(block_cb, f); in dsa_slave_setup_tc_block()
1028 list_del(&block_cb->driver_list); in dsa_slave_setup_tc_block()
/Linux-v5.4/drivers/net/ethernet/mellanox/mlx5/core/
Den_rep.c764 struct flow_block_cb *block_cb; in mlx5e_rep_indr_setup_tc_block() local
787 block_cb = flow_block_cb_alloc(mlx5e_rep_indr_setup_block_cb, in mlx5e_rep_indr_setup_tc_block()
790 if (IS_ERR(block_cb)) { in mlx5e_rep_indr_setup_tc_block()
793 return PTR_ERR(block_cb); in mlx5e_rep_indr_setup_tc_block()
795 flow_block_cb_add(block_cb, f); in mlx5e_rep_indr_setup_tc_block()
796 list_add_tail(&block_cb->driver_list, &mlx5e_block_cb_list); in mlx5e_rep_indr_setup_tc_block()
804 block_cb = flow_block_cb_lookup(f->block, in mlx5e_rep_indr_setup_tc_block()
807 if (!block_cb) in mlx5e_rep_indr_setup_tc_block()
810 flow_block_cb_remove(block_cb, f); in mlx5e_rep_indr_setup_tc_block()
811 list_del(&block_cb->driver_list); in mlx5e_rep_indr_setup_tc_block()
/Linux-v5.4/net/sched/
Dcls_api.c1487 struct flow_block_cb *block_cb, *next; in tcf_block_bind() local
1492 list_for_each_entry(block_cb, &bo->cb_list, list) { in tcf_block_bind()
1493 err = tcf_block_playback_offloads(block, block_cb->cb, in tcf_block_bind()
1494 block_cb->cb_priv, true, in tcf_block_bind()
1509 list_for_each_entry_safe(block_cb, next, &bo->cb_list, list) { in tcf_block_bind()
1511 list_del(&block_cb->list); in tcf_block_bind()
1512 tcf_block_playback_offloads(block, block_cb->cb, in tcf_block_bind()
1513 block_cb->cb_priv, false, in tcf_block_bind()
1519 flow_block_cb_free(block_cb); in tcf_block_bind()
1528 struct flow_block_cb *block_cb, *next; in tcf_block_unbind() local
[all …]
/Linux-v5.4/drivers/net/ethernet/mellanox/mlxsw/
Dspectrum.c1608 struct flow_block_cb *block_cb; in mlxsw_sp_setup_tc_block_flower_bind() local
1612 block_cb = flow_block_cb_lookup(f->block, in mlxsw_sp_setup_tc_block_flower_bind()
1615 if (!block_cb) { in mlxsw_sp_setup_tc_block_flower_bind()
1619 block_cb = flow_block_cb_alloc(mlxsw_sp_setup_tc_block_cb_flower, in mlxsw_sp_setup_tc_block_flower_bind()
1622 if (IS_ERR(block_cb)) { in mlxsw_sp_setup_tc_block_flower_bind()
1624 err = PTR_ERR(block_cb); in mlxsw_sp_setup_tc_block_flower_bind()
1629 acl_block = flow_block_cb_priv(block_cb); in mlxsw_sp_setup_tc_block_flower_bind()
1631 flow_block_cb_incref(block_cb); in mlxsw_sp_setup_tc_block_flower_bind()
1643 flow_block_cb_add(block_cb, f); in mlxsw_sp_setup_tc_block_flower_bind()
1644 list_add_tail(&block_cb->driver_list, &mlxsw_sp_block_cb_list); in mlxsw_sp_setup_tc_block_flower_bind()
[all …]