Home
last modified time | relevance | path

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

/linux-6.1.9/net/core/
Dflow_offload.c251 struct flow_block_cb *block_cb; in flow_block_cb_alloc() local
253 block_cb = kzalloc(sizeof(*block_cb), GFP_KERNEL); in flow_block_cb_alloc()
254 if (!block_cb) in flow_block_cb_alloc()
257 block_cb->cb = cb; in flow_block_cb_alloc()
258 block_cb->cb_ident = cb_ident; in flow_block_cb_alloc()
259 block_cb->cb_priv = cb_priv; in flow_block_cb_alloc()
260 block_cb->release = release; in flow_block_cb_alloc()
262 return block_cb; in flow_block_cb_alloc()
266 void flow_block_cb_free(struct flow_block_cb *block_cb) in flow_block_cb_free() argument
268 if (block_cb->release) in flow_block_cb_free()
[all …]
/linux-6.1.9/drivers/net/ethernet/marvell/prestera/
Dprestera_flow.c179 struct flow_block_cb *block_cb; in prestera_flow_block_get() local
181 block_cb = flow_block_cb_lookup(f->block, in prestera_flow_block_get()
183 if (!block_cb) { in prestera_flow_block_get()
188 block_cb = flow_block_cb_alloc(prestera_flow_block_cb, in prestera_flow_block_get()
191 if (IS_ERR(block_cb)) { in prestera_flow_block_get()
193 return ERR_CAST(block_cb); in prestera_flow_block_get()
196 block->block_cb = block_cb; in prestera_flow_block_get()
199 block = flow_block_cb_priv(block_cb); in prestera_flow_block_get()
203 flow_block_cb_incref(block_cb); in prestera_flow_block_get()
210 struct flow_block_cb *block_cb = block->block_cb; in prestera_flow_block_put() local
[all …]
Dprestera_flow.h23 struct flow_block_cb *block_cb; member
/linux-6.1.9/drivers/net/ethernet/mellanox/mlxsw/
Dspectrum_flow.c207 struct flow_block_cb *block_cb; in mlxsw_sp_setup_tc_block_bind() local
211 block_cb = flow_block_cb_lookup(f->block, mlxsw_sp_flow_block_cb, in mlxsw_sp_setup_tc_block_bind()
213 if (!block_cb) { in mlxsw_sp_setup_tc_block_bind()
217 block_cb = flow_block_cb_alloc(mlxsw_sp_flow_block_cb, in mlxsw_sp_setup_tc_block_bind()
220 if (IS_ERR(block_cb)) { in mlxsw_sp_setup_tc_block_bind()
222 return PTR_ERR(block_cb); in mlxsw_sp_setup_tc_block_bind()
226 flow_block = flow_block_cb_priv(block_cb); in mlxsw_sp_setup_tc_block_bind()
228 flow_block_cb_incref(block_cb); in mlxsw_sp_setup_tc_block_bind()
240 flow_block_cb_add(block_cb, f); in mlxsw_sp_setup_tc_block_bind()
241 list_add_tail(&block_cb->driver_list, &mlxsw_sp_block_cb_list); in mlxsw_sp_setup_tc_block_bind()
[all …]
Dspectrum_qdisc.c2178 struct flow_block_cb *block_cb; in mlxsw_sp_setup_tc_block_qevent_bind() local
2184 block_cb = flow_block_cb_lookup(f->block, mlxsw_sp_qevent_block_cb, mlxsw_sp); in mlxsw_sp_setup_tc_block_qevent_bind()
2185 if (!block_cb) { in mlxsw_sp_setup_tc_block_qevent_bind()
2189 block_cb = flow_block_cb_alloc(mlxsw_sp_qevent_block_cb, mlxsw_sp, qevent_block, in mlxsw_sp_setup_tc_block_qevent_bind()
2191 if (IS_ERR(block_cb)) { in mlxsw_sp_setup_tc_block_qevent_bind()
2193 return PTR_ERR(block_cb); in mlxsw_sp_setup_tc_block_qevent_bind()
2197 qevent_block = flow_block_cb_priv(block_cb); in mlxsw_sp_setup_tc_block_qevent_bind()
2199 flow_block_cb_incref(block_cb); in mlxsw_sp_setup_tc_block_qevent_bind()
2233 flow_block_cb_add(block_cb, f); in mlxsw_sp_setup_tc_block_qevent_bind()
2234 list_add_tail(&block_cb->driver_list, &mlxsw_sp_qevent_block_cb_list); in mlxsw_sp_setup_tc_block_qevent_bind()
[all …]
/linux-6.1.9/drivers/net/ethernet/sfc/
Dtc_bindings.c77 struct flow_block_cb *block_cb; in efx_tc_setup_block() local
91 block_cb = flow_block_cb_alloc(efx_tc_block_cb, binding, in efx_tc_setup_block()
93 rc = PTR_ERR_OR_ZERO(block_cb); in efx_tc_setup_block()
103 flow_block_cb_add(block_cb, tcb); in efx_tc_setup_block()
109 block_cb = flow_block_cb_lookup(tcb->block, in efx_tc_setup_block()
112 if (block_cb) { in efx_tc_setup_block()
113 flow_block_cb_remove(block_cb, tcb); in efx_tc_setup_block()
141 void (*cleanup)(struct flow_block_cb *block_cb)) in efx_tc_indr_setup_cb() argument
145 struct flow_block_cb *block_cb; in efx_tc_indr_setup_cb() local
172 block_cb = flow_indr_block_cb_alloc(efx_tc_block_cb, binding, in efx_tc_indr_setup_cb()
[all …]
Dtc_bindings.h28 void (*cleanup)(struct flow_block_cb *block_cb));
/linux-6.1.9/include/net/netfilter/
Dnf_flow_table.h223 struct flow_block_cb *block_cb; in nf_flow_table_offload_add_cb() local
227 block_cb = flow_block_cb_lookup(block, cb, cb_priv); in nf_flow_table_offload_add_cb()
228 if (block_cb) { in nf_flow_table_offload_add_cb()
233 block_cb = flow_block_cb_alloc(cb, cb_priv, cb_priv, NULL); in nf_flow_table_offload_add_cb()
234 if (IS_ERR(block_cb)) { in nf_flow_table_offload_add_cb()
235 err = PTR_ERR(block_cb); in nf_flow_table_offload_add_cb()
239 list_add_tail(&block_cb->list, &block->cb_list); in nf_flow_table_offload_add_cb()
251 struct flow_block_cb *block_cb; in nf_flow_table_offload_del_cb() local
254 block_cb = flow_block_cb_lookup(block, cb, cb_priv); in nf_flow_table_offload_del_cb()
255 if (block_cb) { in nf_flow_table_offload_del_cb()
[all …]
/linux-6.1.9/include/net/
Dflow_offload.h509 void (*cleanup)(struct flow_block_cb *block_cb);
533 void (*cleanup)(struct flow_block_cb *block_cb));
534 void flow_block_cb_free(struct flow_block_cb *block_cb);
539 void *flow_block_cb_priv(struct flow_block_cb *block_cb);
540 void flow_block_cb_incref(struct flow_block_cb *block_cb);
541 unsigned int flow_block_cb_decref(struct flow_block_cb *block_cb);
543 static inline void flow_block_cb_add(struct flow_block_cb *block_cb, in flow_block_cb_add() argument
546 list_add_tail(&block_cb->list, &offload->cb_list); in flow_block_cb_add()
549 static inline void flow_block_cb_remove(struct flow_block_cb *block_cb, in flow_block_cb_remove() argument
552 list_move(&block_cb->list, &offload->cb_list); in flow_block_cb_remove()
[all …]
/linux-6.1.9/drivers/net/ethernet/mediatek/
Dmtk_ppe_offload.c550 struct flow_block_cb *block_cb; in mtk_eth_setup_tc_block() local
564 block_cb = flow_block_cb_lookup(f->block, cb, dev); in mtk_eth_setup_tc_block()
565 if (block_cb) { in mtk_eth_setup_tc_block()
566 flow_block_cb_incref(block_cb); in mtk_eth_setup_tc_block()
569 block_cb = flow_block_cb_alloc(cb, dev, dev, NULL); in mtk_eth_setup_tc_block()
570 if (IS_ERR(block_cb)) in mtk_eth_setup_tc_block()
571 return PTR_ERR(block_cb); in mtk_eth_setup_tc_block()
573 flow_block_cb_add(block_cb, f); in mtk_eth_setup_tc_block()
574 list_add_tail(&block_cb->driver_list, &block_cb_list); in mtk_eth_setup_tc_block()
577 block_cb = flow_block_cb_lookup(f->block, cb, dev); in mtk_eth_setup_tc_block()
[all …]
/linux-6.1.9/net/netfilter/
Dnf_tables_offload.c200 struct flow_block_cb *block_cb; in nft_setup_cb_call() local
203 list_for_each_entry(block_cb, cb_list, list) { in nft_setup_cb_call()
204 err = block_cb->cb(type, type_data, block_cb->cb_priv); in nft_setup_cb_call()
323 struct flow_block_cb *block_cb, *next; in nft_flow_offload_unbind() local
337 list_for_each_entry_safe(block_cb, next, &bo->cb_list, list) { in nft_flow_offload_unbind()
338 list_del(&block_cb->list); in nft_flow_offload_unbind()
339 flow_block_cb_free(block_cb); in nft_flow_offload_unbind()
399 static void nft_indr_block_cleanup(struct flow_block_cb *block_cb) in nft_indr_block_cleanup() argument
401 struct nft_base_chain *basechain = block_cb->indr.data; in nft_indr_block_cleanup()
402 struct net_device *dev = block_cb->indr.dev; in nft_indr_block_cleanup()
[all …]
Dnf_flow_table_offload.c844 struct flow_block_cb *block_cb; in nf_flow_offload_tuple() local
855 list_for_each_entry(block_cb, block_cb_list, list) { in nf_flow_offload_tuple()
856 err = block_cb->cb(TC_SETUP_CLSFLOWER, &cls_flow, in nf_flow_offload_tuple()
857 block_cb->cb_priv); in nf_flow_offload_tuple()
1098 struct flow_block_cb *block_cb, *next; in nf_flow_table_block_setup() local
1107 list_for_each_entry_safe(block_cb, next, &bo->cb_list, list) { in nf_flow_table_block_setup()
1108 list_del(&block_cb->list); in nf_flow_table_block_setup()
1109 flow_block_cb_free(block_cb); in nf_flow_table_block_setup()
1137 static void nf_flow_table_indr_cleanup(struct flow_block_cb *block_cb) in nf_flow_table_indr_cleanup() argument
1139 struct nf_flowtable *flowtable = block_cb->indr.data; in nf_flow_table_indr_cleanup()
[all …]
/linux-6.1.9/drivers/net/ethernet/mellanox/mlx5/core/en/rep/
Dtc.c436 void (*cleanup)(struct flow_block_cb *block_cb)) in mlx5e_rep_indr_setup_block() argument
442 struct flow_block_cb *block_cb; in mlx5e_rep_indr_setup_block() local
484 block_cb = flow_indr_block_cb_alloc(setup_cb, indr_priv, indr_priv, in mlx5e_rep_indr_setup_block()
488 if (IS_ERR(block_cb)) { in mlx5e_rep_indr_setup_block()
491 return PTR_ERR(block_cb); in mlx5e_rep_indr_setup_block()
493 flow_block_cb_add(block_cb, f); in mlx5e_rep_indr_setup_block()
494 list_add_tail(&block_cb->driver_list, &mlx5e_block_cb_list); in mlx5e_rep_indr_setup_block()
502 block_cb = flow_block_cb_lookup(f->block, setup_cb, indr_priv); in mlx5e_rep_indr_setup_block()
503 if (!block_cb) in mlx5e_rep_indr_setup_block()
506 flow_indr_block_cb_remove(block_cb, f); in mlx5e_rep_indr_setup_block()
[all …]
/linux-6.1.9/drivers/net/ethernet/netronome/nfp/flower/
Doffload.c1773 struct flow_block_cb *block_cb; in nfp_flower_setup_tc_block() local
1788 block_cb = flow_block_cb_alloc(nfp_flower_setup_tc_block_cb, in nfp_flower_setup_tc_block()
1790 if (IS_ERR(block_cb)) in nfp_flower_setup_tc_block()
1791 return PTR_ERR(block_cb); in nfp_flower_setup_tc_block()
1793 flow_block_cb_add(block_cb, f); in nfp_flower_setup_tc_block()
1794 list_add_tail(&block_cb->driver_list, &nfp_block_cb_list); in nfp_flower_setup_tc_block()
1797 block_cb = flow_block_cb_lookup(f->block, in nfp_flower_setup_tc_block()
1800 if (!block_cb) in nfp_flower_setup_tc_block()
1803 flow_block_cb_remove(block_cb, f); in nfp_flower_setup_tc_block()
1804 list_del(&block_cb->driver_list); in nfp_flower_setup_tc_block()
[all …]
Dmain.h658 void (*cleanup)(struct flow_block_cb *block_cb));
/linux-6.1.9/net/sched/
Dcls_api.c662 static void tc_block_indr_cleanup(struct flow_block_cb *block_cb) in tc_block_indr_cleanup() argument
664 struct tcf_block *block = block_cb->indr.data; in tc_block_indr_cleanup()
665 struct net_device *dev = block_cb->indr.dev; in tc_block_indr_cleanup()
666 struct Qdisc *sch = block_cb->indr.sch; in tc_block_indr_cleanup()
671 block_cb->indr.binder_type, in tc_block_indr_cleanup()
676 list_del(&block_cb->driver_list); in tc_block_indr_cleanup()
677 list_move(&block_cb->list, &bo.cb_list); in tc_block_indr_cleanup()
1463 struct flow_block_cb *block_cb, *next; in tcf_block_bind() local
1468 list_for_each_entry(block_cb, &bo->cb_list, list) { in tcf_block_bind()
1469 err = tcf_block_playback_offloads(block, block_cb->cb, in tcf_block_bind()
[all …]
Dact_ct.c327 struct flow_block_cb *block_cb, *tmp_cb; in tcf_ct_flow_table_cleanup_work() local
338 list_for_each_entry_safe(block_cb, tmp_cb, &block->cb_list, list) { in tcf_ct_flow_table_cleanup_work()
339 list_del(&block_cb->list); in tcf_ct_flow_table_cleanup_work()
340 flow_block_cb_free(block_cb); in tcf_ct_flow_table_cleanup_work()
/linux-6.1.9/drivers/net/ethernet/freescale/dpaa2/
Ddpaa2-switch.c1305 struct flow_block_cb *block_cb; in dpaa2_switch_setup_tc_block_bind() local
1309 block_cb = flow_block_cb_lookup(f->block, in dpaa2_switch_setup_tc_block_bind()
1313 if (!block_cb) { in dpaa2_switch_setup_tc_block_bind()
1320 block_cb = flow_block_cb_alloc(dpaa2_switch_port_setup_tc_block_cb_ig, in dpaa2_switch_setup_tc_block_bind()
1322 if (IS_ERR(block_cb)) in dpaa2_switch_setup_tc_block_bind()
1323 return PTR_ERR(block_cb); in dpaa2_switch_setup_tc_block_bind()
1327 filter_block = flow_block_cb_priv(block_cb); in dpaa2_switch_setup_tc_block_bind()
1330 flow_block_cb_incref(block_cb); in dpaa2_switch_setup_tc_block_bind()
1336 flow_block_cb_add(block_cb, f); in dpaa2_switch_setup_tc_block_bind()
1337 list_add_tail(&block_cb->driver_list, in dpaa2_switch_setup_tc_block_bind()
[all …]
/linux-6.1.9/drivers/net/ethernet/broadcom/bnxt/
Dbnxt_tc.c1904 void (*cleanup)(struct flow_block_cb *block_cb)) in bnxt_tc_setup_indr_block() argument
1907 struct flow_block_cb *block_cb; in bnxt_tc_setup_indr_block() local
1922 block_cb = flow_indr_block_cb_alloc(bnxt_tc_setup_indr_block_cb, in bnxt_tc_setup_indr_block()
1926 if (IS_ERR(block_cb)) { in bnxt_tc_setup_indr_block()
1929 return PTR_ERR(block_cb); in bnxt_tc_setup_indr_block()
1932 flow_block_cb_add(block_cb, f); in bnxt_tc_setup_indr_block()
1933 list_add_tail(&block_cb->driver_list, &bnxt_block_cb_list); in bnxt_tc_setup_indr_block()
1940 block_cb = flow_block_cb_lookup(f->block, in bnxt_tc_setup_indr_block()
1943 if (!block_cb) in bnxt_tc_setup_indr_block()
1946 flow_indr_block_cb_remove(block_cb, f); in bnxt_tc_setup_indr_block()
[all …]
/linux-6.1.9/drivers/net/ethernet/mscc/
Docelot_net.c448 struct flow_block_cb *block_cb; in ocelot_setup_tc_block() local
467 block_cb = flow_block_cb_alloc(cb, priv, priv, NULL); in ocelot_setup_tc_block()
468 if (IS_ERR(block_cb)) in ocelot_setup_tc_block()
469 return PTR_ERR(block_cb); in ocelot_setup_tc_block()
471 flow_block_cb_add(block_cb, f); in ocelot_setup_tc_block()
472 list_add_tail(&block_cb->driver_list, f->driver_block_list); in ocelot_setup_tc_block()
475 block_cb = flow_block_cb_lookup(f->block, cb, priv); in ocelot_setup_tc_block()
476 if (!block_cb) in ocelot_setup_tc_block()
479 flow_block_cb_remove(block_cb, f); in ocelot_setup_tc_block()
480 list_del(&block_cb->driver_list); in ocelot_setup_tc_block()
/linux-6.1.9/net/dsa/
Dslave.c1508 struct flow_block_cb *block_cb; in dsa_slave_setup_tc_block() local
1525 block_cb = flow_block_cb_alloc(cb, dev, dev, NULL); in dsa_slave_setup_tc_block()
1526 if (IS_ERR(block_cb)) in dsa_slave_setup_tc_block()
1527 return PTR_ERR(block_cb); in dsa_slave_setup_tc_block()
1529 flow_block_cb_add(block_cb, f); in dsa_slave_setup_tc_block()
1530 list_add_tail(&block_cb->driver_list, &dsa_slave_block_cb_list); in dsa_slave_setup_tc_block()
1533 block_cb = flow_block_cb_lookup(f->block, cb, dev); in dsa_slave_setup_tc_block()
1534 if (!block_cb) in dsa_slave_setup_tc_block()
1537 flow_block_cb_remove(block_cb, f); in dsa_slave_setup_tc_block()
1538 list_del(&block_cb->driver_list); in dsa_slave_setup_tc_block()
/linux-6.1.9/drivers/net/ethernet/intel/ice/
Dice_main.c81 void (*cleanup)(struct flow_block_cb *block_cb));
8796 void (*cleanup)(struct flow_block_cb *block_cb)) in ice_indr_setup_tc_block() argument
8799 struct flow_block_cb *block_cb; in ice_indr_setup_tc_block() local
8823 block_cb = in ice_indr_setup_tc_block()
8830 if (IS_ERR(block_cb)) { in ice_indr_setup_tc_block()
8833 return PTR_ERR(block_cb); in ice_indr_setup_tc_block()
8835 flow_block_cb_add(block_cb, f); in ice_indr_setup_tc_block()
8836 list_add_tail(&block_cb->driver_list, &ice_block_cb_list); in ice_indr_setup_tc_block()
8843 block_cb = flow_block_cb_lookup(f->block, in ice_indr_setup_tc_block()
8846 if (!block_cb) in ice_indr_setup_tc_block()
[all …]