On Thu, Jun 18, 2020 at 12:55:03AM +0800, we...@ucloud.cn wrote: > 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.
Thanks Wenxu, Pablo's minor comment wrt patch #1 not withstanding this series is now looking good to me. With that fixed feel free to add: Reviewed-by: Simon Horman <simon.hor...@netronome.com>