Some functions reports fixed ENOMEM when getting any failure, so it's hard for user to know which actual error happens on them. Fixes(ucma_get_device): 2ffda7f29913 ("librdmacm: Only allocate verbs resources when needed") 191c9346f335 ("librdmacm: Reference count access to verbs context") Fixes(ucma_create_cqs): f8f1335ad8d8 ("librdmacm: make CQs optional for rdma_create_qp") 9e33488e8e50 ("librdmacm: fix all calls to set errno") Fixes(rdma_create_qp_ex): d2efdede11f7 ("r4019: Add support for userspace RDMA connection management abstraction (CMA)") 4e33a4109a62 ("librdmacm: returns errors from the library consistently") 995eb0c90c1a ("rdmacm: Add support for XRC QPs") Signed-off-by: Xiao Yang <yangx.jy@xxxxxxxxxxxxxx> --- librdmacm/cma.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/librdmacm/cma.c b/librdmacm/cma.c index 8c820ccf..a2575156 100644 --- a/librdmacm/cma.c +++ b/librdmacm/cma.c @@ -635,7 +635,7 @@ static int ucma_get_device(struct cma_id_private *id_priv, __be64 guid, if (!cma_dev->pd) cma_dev->pd = ibv_alloc_pd(cma_dev->verbs); if (!cma_dev->pd) { - ret = ERR(ENOMEM); + ret = -1; goto out; } @@ -1490,7 +1490,7 @@ static int ucma_create_cqs(struct rdma_cm_id *id, uint32_t send_size, uint32_t r return 0; err: ucma_destroy_cqs(id); - return ERR(ENOMEM); + return -1; } int rdma_create_srq_ex(struct rdma_cm_id *id, struct ibv_srq_init_attr_ex *attr) @@ -1662,7 +1662,7 @@ int rdma_create_qp_ex(struct rdma_cm_id *id, attr->srq = id->srq; qp = ibv_create_qp_ex(id->verbs, attr); if (!qp) { - ret = ERR(ENOMEM); + ret = -1; goto err1; } -- 2.25.1