From: wenxu <we...@ucloud.cn> v2: patch2: store the cb_priv of representor to the flow_block_cb->indr.cb_priv in the driver. And make the correct check with the statments this->indr.cb_priv == cb_priv
patch4: del the driver list only in the indriect cleanup callbacks v3: add the cover letter and changlogs. v4: collapsed 1/4, 2/4, 4/4 in v3 to one fix Add the prepare patch 1 and 2 This series fixes commit 1fac52da5942 ("net: flow_offload: consolidate indirect flow_block infrastructure") that revists the flow_block infrastructure. patch #1 #2???prepare for fix patch #3 add and use flow_indr_block_cb_alloc/remove function patch #3: fix flow_indr_dev_unregister path If the representor is removed, then identify the indirect flow_blocks that need to be removed by the release callback and the port representor structure. To identify the port representor structure, a new indr.cb_priv field needs to be introduced. The flow_block also needs to be removed from the driver list from the cleanup path patch#4 fix block->nooffloaddevcnt warning dmesg log. When a indr device add in offload success. The block->nooffloaddevcnt should be 0. After the representor go away. When the dir device go away the flow_block UNBIND operation with -EOPNOTSUPP which lead the warning demesg log. The block->nooffloaddevcnt should always count for indr block. even the indr block offload successful. The representor maybe gone away and the ingress qdisc can work in software mode. wenxu (4): flow_offload: add flow_indr_block_cb_alloc/remove function flow_offload: use flow_indr_block_cb_alloc/remove function net: flow_offload: fix flow_indr_dev_unregister path net/sched: cls_api: fix nooffloaddevcnt warning dmesg log drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c | 21 +++--- .../net/ethernet/mellanox/mlx5/core/en/rep/tc.c | 24 ++++--- drivers/net/ethernet/netronome/nfp/flower/main.c | 2 +- drivers/net/ethernet/netronome/nfp/flower/main.h | 7 +- .../net/ethernet/netronome/nfp/flower/offload.c | 24 ++++--- include/net/flow_offload.h | 21 +++++- net/core/flow_offload.c | 79 ++++++++++++---------- net/netfilter/nf_flow_table_offload.c | 1 + net/netfilter/nf_tables_offload.c | 1 + net/sched/cls_api.c | 25 ++++--- 10 files changed, 126 insertions(+), 79 deletions(-) -- 1.8.3.1