Hi,
> -----Original Message----- > From: dev <dev-boun...@dpdk.org> On Behalf Of Tal Shnaiderman > Sent: Wednesday, October 28, 2020 7:11 PM > To: dev@dpdk.org > Cc: NBU-Contact-Thomas Monjalon <tho...@monjalon.net>; Matan Azrad > <ma...@nvidia.com>; Shahaf Shuler <shah...@nvidia.com>; Slava > Ovsiienko <viachesl...@nvidia.com>; sta...@dpdk.org > Subject: [dpdk-dev] [PATCH] mlx5/net: fix release of SQ resources in error > flow > > Fix in error flow in which the function mlx5_txq_release_devx_sq_resources > is called twice by setting the release object to NULL after the first call > > The incorrect flow was introduced in the work done on generic > object creation. > > Once an error flow inside mlx5_txq_create_devx_sq_resources > occurs the function will call mlx5_txq_release_devx_sq_resources > however the released pointers are not set to NULL after the release > calls and undefined memory is released in the same call in > mlx5_txq_release_devx_resources. > > This results in calls to MLX5_FREE with > an already released memory addresses and assert in mlx5_release_dbr: > > EAL: Error: Invalid memory > EAL: Error: Invalid memory > > PANIC in mlx5_txq_release_devx_sq_resources(): > assert "(mlx5_release_dbr(&txq_obj->txq_ctrl->priv->dbrpgs, > mlx5_os_get_umem_id (txq_obj->sq_dbrec_page->umem), > txq_obj->sq_dbrec_offset)) == 0" failed > > The fix is setting the released pointers to NULL after the first release > calls. > > Fixes: 86d259cec852 ("net/mlx5: separate Tx queue object creations") > Cc: sta...@dpdk.org > > Signed-off-by: Tal Shnaiderman <tal...@nvidia.com> > Acked-by: Matan Azrad <ma...@nvidia.com> > --- > drivers/net/mlx5/mlx5_devx.c | 16 ++++++++++++---- > 1 file changed, 12 insertions(+), 4 deletions(-) > Patch applied to next-net-mlx, Kindest regards, Raslan Darawsheh