On Tue, Oct 27, 2020 at 11:22:50PM +0000, Ophir Munk wrote:
> From: Tal Shnaiderman <tal...@nvidia.com>
> 
> Implement Windows API mlx5_os_alloc_pd() and mlx5_os_dealloc_pd(). They
> are equivalent to the Linux implementation.
> 
> Signed-off-by: Tal Shnaiderman <tal...@nvidia.com>
> Acked-by: Matan Azrad <ma...@nvidia.com>
> ---
>  drivers/common/mlx5/rte_common_mlx5_exports.def |  3 +-
>  drivers/common/mlx5/windows/mlx5_common_os.c    | 47 
> +++++++++++++++++++++++++
>  drivers/common/mlx5/windows/mlx5_common_os.h    |  3 ++
>  drivers/common/mlx5/windows/mlx5_win_ext.h      |  6 ++++
>  4 files changed, 58 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/common/mlx5/rte_common_mlx5_exports.def 
> b/drivers/common/mlx5/rte_common_mlx5_exports.def
> + * @return
> + *    The mlx5_pd if pd is valid, NULL and errno otherwise.
> + */
> +void *
> +mlx5_os_alloc_pd(void *ctx)
> +{
> +     struct mlx5_pd *ppd =  mlx5_malloc(MLX5_MEM_ZERO,
> +             sizeof(struct mlx5_pd), 0, SOCKET_ID_ANY);
> +     if (!ppd)
> +             return NULL;
> +
> +     struct mlx5_devx_obj *obj = mlx5_devx_cmd_alloc_pd(ctx);
> +     if (!obj)

Free ppd here, to avoid memory leak.

> +             return NULL;
> +
> +     ppd->obj = obj;
> +     ppd->pdn = obj->id;
> +     ppd->devx_ctx = ctx;
> +     return ppd;
> +}
> +

Reply via email to