From: leonidk Date: Mon, 17 Apr 2006 13:27:29 +0000 (+0000) Subject: [MTHCA] 1. bugfix: get down to the kernel in destroy_av to release resources. X-Git-Url: https://openfabrics.org/gitweb/?a=commitdiff_plain;h=14abbe401c799927172bfa1b26438c16410a1748;p=~shefty%2Frdma-win.git [MTHCA] 1. bugfix: get down to the kernel in destroy_av to release resources. 2. cosmetics git-svn-id: svn://openib.tc.cornell.edu/gen1@311 ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86 --- diff --git a/trunk/hw/mthca/kernel/mt_verbs.c b/trunk/hw/mthca/kernel/mt_verbs.c index 739af0da..afac2352 100644 --- a/trunk/hw/mthca/kernel/mt_verbs.c +++ b/trunk/hw/mthca/kernel/mt_verbs.c @@ -110,7 +110,7 @@ struct ib_pd *ibv_alloc_pd(struct ib_device *device, pd->device = device; pd->ucontext = context; atomic_set(&pd->usecnt, 0); - HCA_PRINT(TRACE_LEVEL_INFORMATION ,HCA_DBG_SHIM ,("PD%d use cnt %d, pd_handle %p, ctx %p \n", + HCA_PRINT(TRACE_LEVEL_INFORMATION ,HCA_DBG_CQ ,("PD%d use cnt %d, pd_handle %p, ctx %p \n", ((struct mthca_pd*)pd)->pd_num, pd->usecnt, pd, pd->ucontext)); } @@ -120,11 +120,11 @@ struct ib_pd *ibv_alloc_pd(struct ib_device *device, int ibv_dealloc_pd(struct ib_pd *pd) { if (atomic_read(&pd->usecnt)) { - HCA_PRINT(TRACE_LEVEL_ERROR ,HCA_DBG_SHIM ,("resources are not released (cnt %d)\n", pd->usecnt)); + HCA_PRINT(TRACE_LEVEL_ERROR ,HCA_DBG_CQ,("resources are not released (cnt %d)\n", pd->usecnt)); return -EBUSY; } - HCA_PRINT(TRACE_LEVEL_INFORMATION ,HCA_DBG_SHIM ,("PD%d use cnt %d, pd_handle %p, ctx %p \n", + HCA_PRINT(TRACE_LEVEL_INFORMATION ,HCA_DBG_CQ ,("PD%d use cnt %d, pd_handle %p, ctx %p \n", ((struct mthca_pd*)pd)->pd_num, pd->usecnt, pd, pd->ucontext)); return pd->device->dealloc_pd(pd); } @@ -267,6 +267,7 @@ int ibv_destroy_ah(struct ib_ah *ah) struct ib_ucontext *ucontext; struct ib_mr * ib_mr; + HCA_ENTER(HCA_DBG_AV); pd = ah->pd; ucontext = ah->ucontext; ib_mr = ah->ib_mr; @@ -278,7 +279,7 @@ int ibv_destroy_ah(struct ib_ah *ah) ((struct mthca_pd*)pd)->pd_num, pd->usecnt, pd, pd->ucontext)); } release_user_cq_qp_resources(ucontext, ib_mr); - + HCA_EXIT(HCA_DBG_AV); return ret; } diff --git a/trunk/hw/mthca/user/mlnx_ual_av.c b/trunk/hw/mthca/user/mlnx_ual_av.c index fe554406..71ebbe3f 100644 --- a/trunk/hw/mthca/user/mlnx_ual_av.c +++ b/trunk/hw/mthca/user/mlnx_ual_av.c @@ -349,9 +349,9 @@ ib_api_status_t mlnx_pre_destroy_av ( IN const ib_av_handle_t h_uvp_av) { - UVP_ENTER(UVP_DBG_AV); - UVP_EXIT(UVP_DBG_AV); - return IB_VERBS_PROCESSING_DONE; + UVP_ENTER(UVP_DBG_AV); + UVP_EXIT(UVP_DBG_AV); + return IB_SUCCESS; } void diff --git a/trunk/hw/mthca/user/mlnx_ual_cq.c b/trunk/hw/mthca/user/mlnx_ual_cq.c index 4a916d46..dfcb12f9 100644 --- a/trunk/hw/mthca/user/mlnx_ual_cq.c +++ b/trunk/hw/mthca/user/mlnx_ual_cq.c @@ -46,7 +46,7 @@ void mlnx_get_cq_interface ( IN OUT uvp_interface_t *p_uvp ) { - UVP_ENTER(UVP_DBG_SHIM); + UVP_ENTER(UVP_DBG_DEV); CL_ASSERT(p_uvp); @@ -65,7 +65,7 @@ mlnx_get_cq_interface ( p_uvp->pre_destroy_cq = mlnx_pre_destroy_cq; p_uvp->post_destroy_cq = mlnx_post_destroy_cq; - UVP_EXIT(UVP_DBG_SHIM); + UVP_EXIT(UVP_DBG_DEV); } ib_api_status_t @@ -81,7 +81,7 @@ ib_api_status_t struct ibv_create_cq *p_create_cq; int err; - UVP_ENTER(UVP_DBG_SHIM); + UVP_ENTER(UVP_DBG_CQ); CL_ASSERT(p_umv_buf); @@ -103,7 +103,7 @@ ib_api_status_t ibv_cq = p_hobul->ibv_ctx->ops.create_cq_pre(p_hobul->ibv_ctx, p_size, p_create_cq); if (IS_ERR(ibv_cq)) { err = PTR_ERR(ibv_cq); - UVP_PRINT(TRACE_LEVEL_ERROR ,UVP_DBG_SHIM , ("mthca_alloc_cq_pre failed (%d)\n", err)); + UVP_PRINT(TRACE_LEVEL_ERROR ,UVP_DBG_CQ , ("mthca_alloc_cq_pre failed (%d)\n", err)); status = errno_to_iberr(err); goto err_alloc_cq; } @@ -114,8 +114,8 @@ err_alloc_cq: cl_free(p_umv_buf->p_inout_buf); err_memory: end: - UVP_EXIT(UVP_DBG_SHIM); - return status; + UVP_EXIT(UVP_DBG_CQ); + return status; } @@ -185,11 +185,11 @@ mlnx_pre_query_cq ( { mlnx_ual_cq_info_t *p_cq_info = (mlnx_ual_cq_info_t *)((void*) h_uvp_cq); - UVP_ENTER(UVP_DBG_SHIM); + UVP_ENTER(UVP_DBG_CQ); *p_size = p_cq_info->cq_size; - UVP_EXIT(UVP_DBG_SHIM); + UVP_EXIT(UVP_DBG_CQ); return IB_VERBS_PROCESSING_DONE; } @@ -198,8 +198,8 @@ ib_api_status_t mlnx_pre_destroy_cq ( IN const ib_cq_handle_t h_uvp_cq) { - UVP_ENTER(UVP_DBG_SHIM); - UVP_EXIT(UVP_DBG_SHIM); + UVP_ENTER(UVP_DBG_CQ); + UVP_EXIT(UVP_DBG_CQ); return IB_SUCCESS; } @@ -212,16 +212,16 @@ mlnx_post_destroy_cq ( mlnx_ual_cq_info_t *p_cq_info = (mlnx_ual_cq_info_t *) ((void*)h_uvp_cq); UNREFERENCED_PARAMETER(ioctl_status); - UVP_ENTER(UVP_DBG_SHIM); + UVP_ENTER(UVP_DBG_CQ); CL_ASSERT(p_cq_info || p_cq_info->ibv_cq); err = p_cq_info->p_hobul->ibv_ctx->ops.destroy_cq( p_cq_info->ibv_cq ); if (err) - UVP_PRINT(TRACE_LEVEL_ERROR ,UVP_DBG_SHIM , ("mthca_destroy_cq failed (%d)\n", err)); + UVP_PRINT(TRACE_LEVEL_ERROR ,UVP_DBG_CQ, ("mthca_destroy_cq failed (%d)\n", err)); cl_free (p_cq_info); - UVP_EXIT(UVP_DBG_SHIM); + UVP_EXIT(UVP_DBG_CQ); return; }