use the functions mlx5_os_alloc_pd, mlx5_os_dealloc_pd mlx5_os_get_pdn instead of the glue functions to support PD operations on all OSs.
Signed-off-by: Tal Shnaiderman <tal...@nvidia.com> --- drivers/crypto/mlx5/mlx5_crypto.c | 15 ++++++--------- drivers/crypto/mlx5/mlx5_crypto.h | 2 +- 2 files changed, 7 insertions(+), 10 deletions(-) diff --git a/drivers/crypto/mlx5/mlx5_crypto.c b/drivers/crypto/mlx5/mlx5_crypto.c index ccae113770..35319d0115 100644 --- a/drivers/crypto/mlx5/mlx5_crypto.c +++ b/drivers/crypto/mlx5/mlx5_crypto.c @@ -784,7 +784,7 @@ static void mlx5_crypto_hw_global_release(struct mlx5_crypto_priv *priv) { if (priv->pd != NULL) { - claim_zero(mlx5_glue->dealloc_pd(priv->pd)); + claim_zero(mlx5_os_dealloc_pd(priv->pd)); priv->pd = NULL; } if (priv->uar != NULL) { @@ -801,21 +801,18 @@ mlx5_crypto_pd_create(struct mlx5_crypto_priv *priv) struct mlx5dv_pd pd_info; int ret; - priv->pd = mlx5_glue->alloc_pd(priv->ctx); + priv->pd = mlx5_os_alloc_pd(priv->ctx); if (priv->pd == NULL) { DRV_LOG(ERR, "Failed to allocate PD."); return errno ? -errno : -ENOMEM; } - obj.pd.in = priv->pd; - obj.pd.out = &pd_info; - ret = mlx5_glue->dv_init_obj(&obj, MLX5DV_OBJ_PD); + ret = mlx5_os_get_pdn(priv->pd, &priv->pdn); if (ret != 0) { - DRV_LOG(ERR, "Fail to get PD object info."); - mlx5_glue->dealloc_pd(priv->pd); + DRV_LOG(ERR, "Fail to get PDN."); + mlx5_os_dealloc_pd(priv->pd); priv->pd = NULL; return -errno; } - priv->pdn = pd_info.pdn; return 0; #else (void)priv; @@ -834,7 +831,7 @@ mlx5_crypto_hw_global_prepare(struct mlx5_crypto_priv *priv) priv->uar_addr = mlx5_os_get_devx_uar_reg_addr(priv->uar); if (priv->uar == NULL || priv->uar_addr == NULL) { rte_errno = errno; - claim_zero(mlx5_glue->dealloc_pd(priv->pd)); + claim_zero(mlx5_os_dealloc_pd(priv->pd)); DRV_LOG(ERR, "Failed to allocate UAR."); return -1; } diff --git a/drivers/crypto/mlx5/mlx5_crypto.h b/drivers/crypto/mlx5/mlx5_crypto.h index d5cc509e42..91e3f438b8 100644 --- a/drivers/crypto/mlx5/mlx5_crypto.h +++ b/drivers/crypto/mlx5/mlx5_crypto.h @@ -25,7 +25,7 @@ struct mlx5_crypto_priv { volatile uint64_t *uar_addr; uint32_t pdn; /* Protection Domain number. */ uint32_t max_segs_num; /* Maximum supported data segs. */ - struct ibv_pd *pd; + void *pd; struct mlx5_hlist *dek_hlist; /* Dek hash list. */ struct rte_cryptodev_config dev_config; struct mlx5_mr_share_cache mr_scache; /* Global shared MR cache. */ -- 2.16.1.windows.4