[dpdk-dev] [PATCH] mlx5/net: fix release of SQ resources in error flow

Raslan Darawsheh rasland at nvidia.com
Thu Nov 5 13:08:56 CET 2020


Hi,

> -----Original Message-----
> From: dev <dev-bounces at dpdk.org> On Behalf Of Tal Shnaiderman
> Sent: Wednesday, October 28, 2020 7:11 PM
> To: dev at dpdk.org
> Cc: NBU-Contact-Thomas Monjalon <thomas at monjalon.net>; Matan Azrad
> <matan at nvidia.com>; Shahaf Shuler <shahafs at nvidia.com>; Slava
> Ovsiienko <viacheslavo at nvidia.com>; stable at 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: stable at dpdk.org
> 
> Signed-off-by: Tal Shnaiderman <talshn at nvidia.com>
> Acked-by: Matan Azrad <matan at 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


More information about the dev mailing list