@@ -1932,7 +1932,6 @@ static int bnxt_tc_setup_indr_block(struct net_device *netdev, struct bnxt *bp,
return -ENOENT;
flow_block_cb_remove(block_cb, f);
- list_del(&block_cb->driver_list);
break;
default:
return -EOPNOTSUPP;
@@ -459,7 +459,6 @@ static void mlx5e_rep_indr_block_unbind(void *cb_priv)
return -ENOENT;
flow_block_cb_remove(block_cb, f);
- list_del(&block_cb->driver_list);
return 0;
default:
return -EOPNOTSUPP;
@@ -1701,7 +1701,6 @@ void nfp_flower_setup_indr_tc_release(void *cb_priv)
return -ENOENT;
flow_block_cb_remove(block_cb, f);
- list_del(&block_cb->driver_list);
return 0;
default:
return -EOPNOTSUPP;
@@ -950,6 +950,7 @@ static void nf_flow_table_indr_cleanup(struct flow_block_cb *block_cb)
nf_flow_table_gc_cleanup(flowtable, dev);
down_write(&flowtable->flow_block_lock);
list_del(&block_cb->list);
+ list_del(&block_cb->driver_list);
flow_block_cb_free(block_cb);
up_write(&flowtable->flow_block_lock);
}
@@ -226,6 +226,7 @@ static int nft_flow_offload_unbind(struct flow_block_offload *bo,
list_for_each_entry_safe(block_cb, next, &bo->cb_list, list) {
list_del(&block_cb->list);
+ list_del(&block_cb->driver_list);
flow_block_cb_free(block_cb);
}
@@ -1487,6 +1487,7 @@ static void tcf_block_unbind(struct tcf_block *block,
tcf_block_offload_in_use(block),
NULL);
list_del(&block_cb->list);
+ list_del(&block_cb->driver_list);
flow_block_cb_free(block_cb);
if (!bo->unlocked_driver_cb)
block->lockeddevcnt--;