/kernel/linux/linux-5.10/net/core/ |
H A D | flow_offload.c | 209 struct flow_block_cb *block_cb; in flow_block_cb_alloc() local 211 block_cb = kzalloc(sizeof(*block_cb), GFP_KERNEL); in flow_block_cb_alloc() 212 if (!block_cb) in flow_block_cb_alloc() 215 block_cb->cb = cb; in flow_block_cb_alloc() 216 block_cb->cb_ident = cb_ident; in flow_block_cb_alloc() 217 block_cb->cb_priv = cb_priv; in flow_block_cb_alloc() 218 block_cb->release = release; in flow_block_cb_alloc() 220 return block_cb; in flow_block_cb_alloc() 224 void flow_block_cb_free(struct flow_block_cb *block_cb) in flow_block_cb_free() argument 236 struct flow_block_cb *block_cb; flow_block_cb_lookup() local 248 flow_block_cb_priv(struct flow_block_cb *block_cb) flow_block_cb_priv() argument 254 flow_block_cb_incref(struct flow_block_cb *block_cb) flow_block_cb_incref() argument 260 flow_block_cb_decref(struct flow_block_cb *block_cb) flow_block_cb_decref() argument 269 struct flow_block_cb *block_cb; flow_block_cb_is_busy() local 287 struct flow_block_cb *block_cb; flow_block_cb_setup_simple() local 458 flow_block_indr_init(struct flow_block_cb *flow_block, struct flow_block_offload *bo, struct net_device *dev, struct Qdisc *sch, void *data, void *cb_priv, void (*cleanup)(struct flow_block_cb *block_cb)) flow_block_indr_init() argument 472 flow_indr_block_cb_alloc(flow_setup_cb_t *cb, void *cb_ident, void *cb_priv, void (*release)(void *cb_priv), struct flow_block_offload *bo, struct net_device *dev, struct Qdisc *sch, void *data, void *indr_cb_priv, void (*cleanup)(struct flow_block_cb *block_cb)) flow_indr_block_cb_alloc() argument 481 struct flow_block_cb *block_cb; flow_indr_block_cb_alloc() local 506 indir_dev_add(void *data, struct net_device *dev, struct Qdisc *sch, enum tc_setup_type type, void (*cleanup)(struct flow_block_cb *block_cb), struct flow_block_offload *bo) indir_dev_add() argument 547 flow_indr_dev_setup_offload(struct net_device *dev, struct Qdisc *sch, enum tc_setup_type type, void *data, struct flow_block_offload *bo, void (*cleanup)(struct flow_block_cb *block_cb)) flow_indr_dev_setup_offload() argument [all...] |
/kernel/linux/linux-6.6/drivers/net/ethernet/marvell/prestera/ |
H A D | prestera_flow.c | 179 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; prestera_flow_block_put() local 224 struct flow_block_cb *block_cb; prestera_setup_flow_block_bind() local 261 struct flow_block_cb *block_cb; prestera_setup_flow_block_unbind() local [all...] |
/kernel/linux/linux-6.6/net/core/ |
H A D | flow_offload.c | 265 struct flow_block_cb *block_cb; in flow_block_cb_alloc() local 267 block_cb = kzalloc(sizeof(*block_cb), GFP_KERNEL); in flow_block_cb_alloc() 268 if (!block_cb) in flow_block_cb_alloc() 271 block_cb->cb = cb; in flow_block_cb_alloc() 272 block_cb->cb_ident = cb_ident; in flow_block_cb_alloc() 273 block_cb->cb_priv = cb_priv; in flow_block_cb_alloc() 274 block_cb->release = release; in flow_block_cb_alloc() 276 return block_cb; in flow_block_cb_alloc() 280 void flow_block_cb_free(struct flow_block_cb *block_cb) in flow_block_cb_free() argument 292 struct flow_block_cb *block_cb; flow_block_cb_lookup() local 304 flow_block_cb_priv(struct flow_block_cb *block_cb) flow_block_cb_priv() argument 310 flow_block_cb_incref(struct flow_block_cb *block_cb) flow_block_cb_incref() argument 316 flow_block_cb_decref(struct flow_block_cb *block_cb) flow_block_cb_decref() argument 325 struct flow_block_cb *block_cb; flow_block_cb_is_busy() local 343 struct flow_block_cb *block_cb; flow_block_cb_setup_simple() local 516 flow_block_indr_init(struct flow_block_cb *flow_block, struct flow_block_offload *bo, struct net_device *dev, struct Qdisc *sch, void *data, void *cb_priv, void (*cleanup)(struct flow_block_cb *block_cb)) flow_block_indr_init() argument 530 flow_indr_block_cb_alloc(flow_setup_cb_t *cb, void *cb_ident, void *cb_priv, void (*release)(void *cb_priv), struct flow_block_offload *bo, struct net_device *dev, struct Qdisc *sch, void *data, void *indr_cb_priv, void (*cleanup)(struct flow_block_cb *block_cb)) flow_indr_block_cb_alloc() argument 539 struct flow_block_cb *block_cb; flow_indr_block_cb_alloc() local 564 indir_dev_add(void *data, struct net_device *dev, struct Qdisc *sch, enum tc_setup_type type, void (*cleanup)(struct flow_block_cb *block_cb), struct flow_block_offload *bo) indir_dev_add() argument 605 flow_indr_dev_setup_offload(struct net_device *dev, struct Qdisc *sch, enum tc_setup_type type, void *data, struct flow_block_offload *bo, void (*cleanup)(struct flow_block_cb *block_cb)) flow_indr_dev_setup_offload() argument [all...] |
/kernel/linux/linux-5.10/drivers/net/ethernet/mellanox/mlxsw/ |
H A D | spectrum_flow.c | 207 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 in mlxsw_sp_setup_tc_block_bind() 258 struct flow_block_cb *block_cb; mlxsw_sp_setup_tc_block_unbind() local [all...] |
H A D | spectrum_qdisc.c | 1714 struct flow_block_cb *block_cb; in mlxsw_sp_setup_tc_block_qevent_bind() local 1719 block_cb = flow_block_cb_lookup(f->block, mlxsw_sp_qevent_block_cb, mlxsw_sp); in mlxsw_sp_setup_tc_block_qevent_bind() 1720 if (!block_cb) { in mlxsw_sp_setup_tc_block_qevent_bind() 1724 block_cb = flow_block_cb_alloc(mlxsw_sp_qevent_block_cb, mlxsw_sp, qevent_block, in mlxsw_sp_setup_tc_block_qevent_bind() 1726 if (IS_ERR(block_cb)) { in mlxsw_sp_setup_tc_block_qevent_bind() 1728 return PTR_ERR(block_cb); in mlxsw_sp_setup_tc_block_qevent_bind() 1732 qevent_block = flow_block_cb_priv(block_cb); in mlxsw_sp_setup_tc_block_qevent_bind() 1734 flow_block_cb_incref(block_cb); in mlxsw_sp_setup_tc_block_qevent_bind() 1763 flow_block_cb_add(block_cb, f); in mlxsw_sp_setup_tc_block_qevent_bind() 1764 list_add_tail(&block_cb in mlxsw_sp_setup_tc_block_qevent_bind() 1786 struct flow_block_cb *block_cb; mlxsw_sp_setup_tc_block_qevent_unbind() local [all...] |
/kernel/linux/linux-6.6/drivers/net/ethernet/mellanox/mlxsw/ |
H A D | spectrum_flow.c | 207 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 in mlxsw_sp_setup_tc_block_bind() 258 struct flow_block_cb *block_cb; mlxsw_sp_setup_tc_block_unbind() local [all...] |
H A D | spectrum_qdisc.c | 2178 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 in mlxsw_sp_setup_tc_block_qevent_bind() 2256 struct flow_block_cb *block_cb; mlxsw_sp_setup_tc_block_qevent_unbind() local [all...] |
/kernel/linux/linux-6.6/drivers/net/ethernet/sfc/ |
H A D | tc_bindings.c | 78 struct flow_block_cb *block_cb; in efx_tc_setup_block() local 92 block_cb = flow_block_cb_alloc(efx_tc_block_cb, binding, in efx_tc_setup_block() 94 rc = PTR_ERR_OR_ZERO(block_cb); in efx_tc_setup_block() 104 flow_block_cb_add(block_cb, tcb); in efx_tc_setup_block() 110 block_cb = flow_block_cb_lookup(tcb->block, in efx_tc_setup_block() 113 if (block_cb) { in efx_tc_setup_block() 114 flow_block_cb_remove(block_cb, tcb); in efx_tc_setup_block() 142 void (*cleanup)(struct flow_block_cb *block_cb)) in efx_tc_indr_setup_cb() 146 struct flow_block_cb *block_cb; in efx_tc_indr_setup_cb() local 173 block_cb in efx_tc_indr_setup_cb() 139 efx_tc_indr_setup_cb(struct net_device *net_dev, struct Qdisc *sch, void *cb_priv, enum tc_setup_type type, void *type_data, void *data, void (*cleanup)(struct flow_block_cb *block_cb)) efx_tc_indr_setup_cb() argument [all...] |
/kernel/linux/linux-5.10/include/net/netfilter/ |
H A D | nf_flow_table.h | 168 struct flow_block_cb *block_cb; in nf_flow_table_offload_add_cb() local 172 block_cb = flow_block_cb_lookup(block, cb, cb_priv); in nf_flow_table_offload_add_cb() 173 if (block_cb) { in nf_flow_table_offload_add_cb() 178 block_cb = flow_block_cb_alloc(cb, cb_priv, cb_priv, NULL); in nf_flow_table_offload_add_cb() 179 if (IS_ERR(block_cb)) { in nf_flow_table_offload_add_cb() 180 err = PTR_ERR(block_cb); in nf_flow_table_offload_add_cb() 184 list_add_tail(&block_cb->list, &block->cb_list); in nf_flow_table_offload_add_cb() 196 struct flow_block_cb *block_cb; in nf_flow_table_offload_del_cb() local 199 block_cb = flow_block_cb_lookup(block, cb, cb_priv); in nf_flow_table_offload_del_cb() 200 if (block_cb) { in nf_flow_table_offload_del_cb() [all...] |
/kernel/linux/linux-6.6/include/net/netfilter/ |
H A D | nf_flow_table.h | 228 struct flow_block_cb *block_cb; in nf_flow_table_offload_add_cb() local 232 block_cb = flow_block_cb_lookup(block, cb, cb_priv); in nf_flow_table_offload_add_cb() 233 if (block_cb) { in nf_flow_table_offload_add_cb() 238 block_cb = flow_block_cb_alloc(cb, cb_priv, cb_priv, NULL); in nf_flow_table_offload_add_cb() 239 if (IS_ERR(block_cb)) { in nf_flow_table_offload_add_cb() 240 err = PTR_ERR(block_cb); in nf_flow_table_offload_add_cb() 244 list_add_tail(&block_cb->list, &block->cb_list); in nf_flow_table_offload_add_cb() 261 struct flow_block_cb *block_cb; in nf_flow_table_offload_del_cb() local 264 block_cb = flow_block_cb_lookup(block, cb, cb_priv); in nf_flow_table_offload_del_cb() 265 if (block_cb) { in nf_flow_table_offload_del_cb() [all...] |
/kernel/linux/linux-5.10/include/net/ |
H A D | flow_offload.h | 463 void (*cleanup)(struct flow_block_cb *block_cb); 487 void (*cleanup)(struct flow_block_cb *block_cb)); 488 void flow_block_cb_free(struct flow_block_cb *block_cb); 493 void *flow_block_cb_priv(struct flow_block_cb *block_cb); 494 void flow_block_cb_incref(struct flow_block_cb *block_cb); 495 unsigned int flow_block_cb_decref(struct flow_block_cb *block_cb); 497 static inline void flow_block_cb_add(struct flow_block_cb *block_cb, in flow_block_cb_add() argument 500 list_add_tail(&block_cb->list, &offload->cb_list); in flow_block_cb_add() 503 static inline void flow_block_cb_remove(struct flow_block_cb *block_cb, in flow_block_cb_remove() argument 506 list_move(&block_cb in flow_block_cb_remove() 509 flow_indr_block_cb_remove(struct flow_block_cb *block_cb, struct flow_block_offload *offload) flow_indr_block_cb_remove() argument [all...] |
/kernel/linux/linux-6.6/include/net/ |
H A D | flow_offload.h | 525 void (*cleanup)(struct flow_block_cb *block_cb); 549 void (*cleanup)(struct flow_block_cb *block_cb)); 550 void flow_block_cb_free(struct flow_block_cb *block_cb); 555 void *flow_block_cb_priv(struct flow_block_cb *block_cb); 556 void flow_block_cb_incref(struct flow_block_cb *block_cb); 557 unsigned int flow_block_cb_decref(struct flow_block_cb *block_cb); 559 static inline void flow_block_cb_add(struct flow_block_cb *block_cb, in flow_block_cb_add() argument 562 list_add_tail(&block_cb->list, &offload->cb_list); in flow_block_cb_add() 565 static inline void flow_block_cb_remove(struct flow_block_cb *block_cb, in flow_block_cb_remove() argument 568 list_move(&block_cb in flow_block_cb_remove() 571 flow_indr_block_cb_remove(struct flow_block_cb *block_cb, struct flow_block_offload *offload) flow_indr_block_cb_remove() argument [all...] |
/kernel/linux/linux-6.6/drivers/net/ethernet/mediatek/ |
H A D | mtk_ppe_offload.c | 578 struct flow_block_cb *block_cb; in mtk_eth_setup_tc_block() local 592 block_cb = flow_block_cb_lookup(f->block, cb, dev); in mtk_eth_setup_tc_block() 593 if (block_cb) { in mtk_eth_setup_tc_block() 594 flow_block_cb_incref(block_cb); in mtk_eth_setup_tc_block() 597 block_cb = flow_block_cb_alloc(cb, dev, dev, NULL); in mtk_eth_setup_tc_block() 598 if (IS_ERR(block_cb)) in mtk_eth_setup_tc_block() 599 return PTR_ERR(block_cb); in mtk_eth_setup_tc_block() 601 flow_block_cb_incref(block_cb); in mtk_eth_setup_tc_block() 602 flow_block_cb_add(block_cb, f); in mtk_eth_setup_tc_block() 603 list_add_tail(&block_cb in mtk_eth_setup_tc_block() [all...] |
H A D | mtk_wed.c | 1786 struct flow_block_cb *block_cb; in mtk_wed_setup_tc_block() local 1801 block_cb = flow_block_cb_lookup(f->block, cb, dev); in mtk_wed_setup_tc_block() 1802 if (block_cb) { in mtk_wed_setup_tc_block() 1803 flow_block_cb_incref(block_cb); in mtk_wed_setup_tc_block() 1813 block_cb = flow_block_cb_alloc(cb, dev, priv, NULL); in mtk_wed_setup_tc_block() 1814 if (IS_ERR(block_cb)) { in mtk_wed_setup_tc_block() 1816 return PTR_ERR(block_cb); in mtk_wed_setup_tc_block() 1819 flow_block_cb_incref(block_cb); in mtk_wed_setup_tc_block() 1820 flow_block_cb_add(block_cb, f); in mtk_wed_setup_tc_block() 1821 list_add_tail(&block_cb in mtk_wed_setup_tc_block() [all...] |
/kernel/linux/linux-5.10/net/netfilter/ |
H A D | nf_tables_offload.c | 202 struct flow_block_cb *block_cb; in nft_setup_cb_call() local 205 list_for_each_entry(block_cb, cb_list, list) { in nft_setup_cb_call() 206 err = block_cb->cb(type, type_data, block_cb->cb_priv); in nft_setup_cb_call() 295 struct flow_block_cb *block_cb, *next; in nft_flow_offload_unbind() local 309 list_for_each_entry_safe(block_cb, next, &bo->cb_list, list) { in nft_flow_offload_unbind() 310 list_del(&block_cb->list); in nft_flow_offload_unbind() 311 flow_block_cb_free(block_cb); in nft_flow_offload_unbind() 371 static void nft_indr_block_cleanup(struct flow_block_cb *block_cb) in nft_indr_block_cleanup() argument 373 struct nft_base_chain *basechain = block_cb in nft_indr_block_cleanup() [all...] |
H A D | nf_flow_table_offload.c | 686 struct flow_block_cb *block_cb; in nf_flow_offload_tuple() local 696 list_for_each_entry(block_cb, block_cb_list, list) { in nf_flow_offload_tuple() 697 err = block_cb->cb(TC_SETUP_CLSFLOWER, &cls_flow, in nf_flow_offload_tuple() 698 block_cb->cb_priv); in nf_flow_offload_tuple() 910 struct flow_block_cb *block_cb, *next; in nf_flow_table_block_setup() local 919 list_for_each_entry_safe(block_cb, next, &bo->cb_list, list) { in nf_flow_table_block_setup() 920 list_del(&block_cb->list); in nf_flow_table_block_setup() 921 flow_block_cb_free(block_cb); in nf_flow_table_block_setup() 949 static void nf_flow_table_indr_cleanup(struct flow_block_cb *block_cb) in nf_flow_table_indr_cleanup() argument 951 struct nf_flowtable *flowtable = block_cb in nf_flow_table_indr_cleanup() [all...] |
/kernel/linux/linux-6.6/net/netfilter/ |
H A D | nf_tables_offload.c | 201 struct flow_block_cb *block_cb; in nft_setup_cb_call() local 204 list_for_each_entry(block_cb, cb_list, list) { in nft_setup_cb_call() 205 err = block_cb->cb(type, type_data, block_cb->cb_priv); in nft_setup_cb_call() 324 struct flow_block_cb *block_cb, *next; in nft_flow_offload_unbind() local 338 list_for_each_entry_safe(block_cb, next, &bo->cb_list, list) { in nft_flow_offload_unbind() 339 list_del(&block_cb->list); in nft_flow_offload_unbind() 340 flow_block_cb_free(block_cb); in nft_flow_offload_unbind() 400 static void nft_indr_block_cleanup(struct flow_block_cb *block_cb) in nft_indr_block_cleanup() argument 402 struct nft_base_chain *basechain = block_cb in nft_indr_block_cleanup() [all...] |
H A D | nf_flow_table_offload.c | 844 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() 1102 struct flow_block_cb *block_cb, *next; in nf_flow_table_block_setup() local 1111 list_for_each_entry_safe(block_cb, next, &bo->cb_list, list) { in nf_flow_table_block_setup() 1112 list_del(&block_cb->list); in nf_flow_table_block_setup() 1113 flow_block_cb_free(block_cb); in nf_flow_table_block_setup() 1141 static void nf_flow_table_indr_cleanup(struct flow_block_cb *block_cb) in nf_flow_table_indr_cleanup() argument 1143 struct nf_flowtable *flowtable = block_cb in nf_flow_table_indr_cleanup() [all...] |
/kernel/linux/linux-5.10/drivers/net/ethernet/mellanox/mlx5/core/en/rep/ |
H A D | tc.c | 413 void (*cleanup)(struct flow_block_cb *block_cb)) in mlx5e_rep_indr_setup_block() 417 struct flow_block_cb *block_cb; in mlx5e_rep_indr_setup_block() local 444 block_cb = flow_indr_block_cb_alloc(setup_cb, indr_priv, indr_priv, in mlx5e_rep_indr_setup_block() 448 if (IS_ERR(block_cb)) { in mlx5e_rep_indr_setup_block() 451 return PTR_ERR(block_cb); in mlx5e_rep_indr_setup_block() 453 flow_block_cb_add(block_cb, f); in mlx5e_rep_indr_setup_block() 454 list_add_tail(&block_cb->driver_list, &mlx5e_block_cb_list); in mlx5e_rep_indr_setup_block() 462 block_cb = flow_block_cb_lookup(f->block, setup_cb, indr_priv); in mlx5e_rep_indr_setup_block() 463 if (!block_cb) in mlx5e_rep_indr_setup_block() 466 flow_indr_block_cb_remove(block_cb, in mlx5e_rep_indr_setup_block() 408 mlx5e_rep_indr_setup_block(struct net_device *netdev, struct Qdisc *sch, struct mlx5e_rep_priv *rpriv, struct flow_block_offload *f, flow_setup_cb_t *setup_cb, void *data, void (*cleanup)(struct flow_block_cb *block_cb)) mlx5e_rep_indr_setup_block() argument 476 mlx5e_rep_indr_setup_cb(struct net_device *netdev, struct Qdisc *sch, void *cb_priv, enum tc_setup_type type, void *type_data, void *data, void (*cleanup)(struct flow_block_cb *block_cb)) mlx5e_rep_indr_setup_cb() argument [all...] |
/kernel/linux/linux-6.6/drivers/net/ethernet/mellanox/mlx5/core/en/rep/ |
H A D | tc.c | 475 void (*cleanup)(struct flow_block_cb *block_cb)) in mlx5e_rep_indr_setup_block() 478 struct flow_block_cb *block_cb; in mlx5e_rep_indr_setup_block() local 502 block_cb = flow_indr_block_cb_alloc(setup_cb, indr_priv, indr_priv, in mlx5e_rep_indr_setup_block() 506 if (IS_ERR(block_cb)) { in mlx5e_rep_indr_setup_block() 509 return PTR_ERR(block_cb); in mlx5e_rep_indr_setup_block() 511 flow_block_cb_add(block_cb, f); in mlx5e_rep_indr_setup_block() 512 list_add_tail(&block_cb->driver_list, &mlx5e_block_cb_list); in mlx5e_rep_indr_setup_block() 520 block_cb = flow_block_cb_lookup(f->block, setup_cb, indr_priv); in mlx5e_rep_indr_setup_block() 521 if (!block_cb) in mlx5e_rep_indr_setup_block() 524 flow_indr_block_cb_remove(block_cb, in mlx5e_rep_indr_setup_block() 470 mlx5e_rep_indr_setup_block(struct net_device *netdev, struct Qdisc *sch, struct mlx5e_rep_priv *rpriv, struct flow_block_offload *f, flow_setup_cb_t *setup_cb, void *data, void (*cleanup)(struct flow_block_cb *block_cb)) mlx5e_rep_indr_setup_block() argument 648 mlx5e_rep_indr_setup_cb(struct net_device *netdev, struct Qdisc *sch, void *cb_priv, enum tc_setup_type type, void *type_data, void *data, void (*cleanup)(struct flow_block_cb *block_cb)) mlx5e_rep_indr_setup_cb() argument [all...] |
/kernel/linux/linux-5.10/drivers/net/ethernet/netronome/nfp/flower/ |
H A D | offload.c | 1673 struct flow_block_cb *block_cb; in nfp_flower_setup_tc_block() local 1688 block_cb = flow_block_cb_alloc(nfp_flower_setup_tc_block_cb, in nfp_flower_setup_tc_block() 1690 if (IS_ERR(block_cb)) in nfp_flower_setup_tc_block() 1691 return PTR_ERR(block_cb); in nfp_flower_setup_tc_block() 1693 flow_block_cb_add(block_cb, f); in nfp_flower_setup_tc_block() 1694 list_add_tail(&block_cb->driver_list, &nfp_block_cb_list); in nfp_flower_setup_tc_block() 1697 block_cb = flow_block_cb_lookup(f->block, in nfp_flower_setup_tc_block() 1700 if (!block_cb) in nfp_flower_setup_tc_block() 1703 flow_block_cb_remove(block_cb, f); in nfp_flower_setup_tc_block() 1704 list_del(&block_cb in nfp_flower_setup_tc_block() 1769 nfp_flower_setup_indr_tc_block(struct net_device *netdev, struct Qdisc *sch, struct nfp_app *app, struct flow_block_offload *f, void *data, void (*cleanup)(struct flow_block_cb *block_cb)) nfp_flower_setup_indr_tc_block() argument 1775 struct flow_block_cb *block_cb; nfp_flower_setup_indr_tc_block() local 1834 nfp_flower_indr_setup_tc_cb(struct net_device *netdev, struct Qdisc *sch, void *cb_priv, enum tc_setup_type type, void *type_data, void *data, void (*cleanup)(struct flow_block_cb *block_cb)) nfp_flower_indr_setup_tc_cb() argument [all...] |
/kernel/linux/linux-6.6/drivers/net/ethernet/netronome/nfp/flower/ |
H A D | offload.c | 1782 struct flow_block_cb *block_cb; in nfp_flower_setup_tc_block() local 1798 block_cb = flow_block_cb_alloc(nfp_flower_setup_tc_block_cb, in nfp_flower_setup_tc_block() 1800 if (IS_ERR(block_cb)) in nfp_flower_setup_tc_block() 1801 return PTR_ERR(block_cb); in nfp_flower_setup_tc_block() 1803 flow_block_cb_add(block_cb, f); in nfp_flower_setup_tc_block() 1804 list_add_tail(&block_cb->driver_list, &nfp_block_cb_list); in nfp_flower_setup_tc_block() 1807 block_cb = flow_block_cb_lookup(f->block, in nfp_flower_setup_tc_block() 1810 if (!block_cb) in nfp_flower_setup_tc_block() 1813 flow_block_cb_remove(block_cb, f); in nfp_flower_setup_tc_block() 1814 list_del(&block_cb in nfp_flower_setup_tc_block() 1875 nfp_flower_setup_indr_tc_block(struct net_device *netdev, struct Qdisc *sch, struct nfp_app *app, struct flow_block_offload *f, void *data, void (*cleanup)(struct flow_block_cb *block_cb)) nfp_flower_setup_indr_tc_block() argument 1881 struct flow_block_cb *block_cb; nfp_flower_setup_indr_tc_block() local 1956 nfp_flower_indr_setup_tc_cb(struct net_device *netdev, struct Qdisc *sch, void *cb_priv, enum tc_setup_type type, void *type_data, void *data, void (*cleanup)(struct flow_block_cb *block_cb)) nfp_flower_indr_setup_tc_cb() argument [all...] |
/kernel/linux/linux-5.10/net/sched/ |
H A D | cls_api.c | 644 static void tc_block_indr_cleanup(struct flow_block_cb *block_cb) in tc_block_indr_cleanup() argument 646 struct tcf_block *block = block_cb->indr.data; in tc_block_indr_cleanup() 647 struct net_device *dev = block_cb->indr.dev; in tc_block_indr_cleanup() 648 struct Qdisc *sch = block_cb->indr.sch; in tc_block_indr_cleanup() 653 block_cb->indr.binder_type, in tc_block_indr_cleanup() 658 list_del(&block_cb->driver_list); in tc_block_indr_cleanup() 659 list_move(&block_cb->list, &bo.cb_list); in tc_block_indr_cleanup() 1446 struct flow_block_cb *block_cb, *next; in tcf_block_bind() local 1451 list_for_each_entry(block_cb, &bo->cb_list, list) { in tcf_block_bind() 1452 err = tcf_block_playback_offloads(block, block_cb in tcf_block_bind() 1488 struct flow_block_cb *block_cb, *next; tcf_block_unbind() local 3257 struct flow_block_cb *block_cb; __tc_setup_cb_call() local [all...] |
/kernel/linux/linux-6.6/net/sched/ |
H A D | cls_api.c | 768 static void tc_block_indr_cleanup(struct flow_block_cb *block_cb) in tc_block_indr_cleanup() argument 770 struct tcf_block *block = block_cb->indr.data; in tc_block_indr_cleanup() 771 struct net_device *dev = block_cb->indr.dev; in tc_block_indr_cleanup() 772 struct Qdisc *sch = block_cb->indr.sch; in tc_block_indr_cleanup() 777 block_cb->indr.binder_type, in tc_block_indr_cleanup() 782 list_del(&block_cb->driver_list); in tc_block_indr_cleanup() 783 list_move(&block_cb->list, &bo.cb_list); in tc_block_indr_cleanup() 1575 struct flow_block_cb *block_cb, *next; in tcf_block_bind() local 1580 list_for_each_entry(block_cb, &bo->cb_list, list) { in tcf_block_bind() 1581 err = tcf_block_playback_offloads(block, block_cb in tcf_block_bind() 1617 struct flow_block_cb *block_cb, *next; tcf_block_unbind() local 3483 struct flow_block_cb *block_cb; __tc_setup_cb_call() local [all...] |
/kernel/linux/linux-5.10/drivers/net/ethernet/mscc/ |
H A D | ocelot_net.c | 147 struct flow_block_cb *block_cb; in ocelot_setup_tc_block() local 166 block_cb = flow_block_cb_alloc(cb, priv, priv, NULL); in ocelot_setup_tc_block() 167 if (IS_ERR(block_cb)) in ocelot_setup_tc_block() 168 return PTR_ERR(block_cb); in ocelot_setup_tc_block() 170 flow_block_cb_add(block_cb, f); in ocelot_setup_tc_block() 171 list_add_tail(&block_cb->driver_list, f->driver_block_list); in ocelot_setup_tc_block() 174 block_cb = flow_block_cb_lookup(f->block, cb, priv); in ocelot_setup_tc_block() 175 if (!block_cb) in ocelot_setup_tc_block() 178 flow_block_cb_remove(block_cb, f); in ocelot_setup_tc_block() 179 list_del(&block_cb in ocelot_setup_tc_block() [all...] |