net/mlx5: fix jump table leak

Currently, when translate jump action, the table reference will be
increased all the time. But when release the jump action, the table
resource reference will only be decreased when jump action is released.
It means for jump action which was referenced more than one time, the
increased table reference only decrease one time when jump action is
released.

Add table release when the jump action was not new created.

Fixes: 684b9a1b1f5c ("net/mlx5: support jump action")
Cc: stable@dpdk.org

Signed-off-by: Suanming Mou <suanmingm@mellanox.com>
Acked-by: Viacheslav Ovsiienko <viacheslavo@mellanox.com>
This commit is contained in:
Suanming Mou 2020-04-13 21:29:13 +08:00 committed by Ferruh Yigit
parent 9dbaf7eef6
commit fe2c412ca9

View File

@ -73,6 +73,10 @@ union flow_dv_attr {
uint32_t attr;
};
static int
flow_dv_tbl_resource_release(struct rte_eth_dev *dev,
struct mlx5_flow_tbl_resource *tbl);
/**
* Initialize flow attributes structure according to flow items' types.
*
@ -2530,6 +2534,8 @@ flow_dv_jump_tbl_resource_register
DRV_LOG(DEBUG, "new jump table resource %p: refcnt %d++",
(void *)&tbl_data->jump, cnt);
} else {
/* old jump should not make the table ref++. */
flow_dv_tbl_resource_release(dev, &tbl_data->tbl);
MLX5_ASSERT(tbl_data->jump.action);
DRV_LOG(DEBUG, "existed jump table resource %p: refcnt %d++",
(void *)&tbl_data->jump, cnt);