From: Arlin Davis Date: Tue, 15 Jul 2014 20:42:12 +0000 (-0700) Subject: mcm: serialize dapls_evd_cqe_to_event calls with evd lock X-Git-Url: https://openfabrics.org/gitweb/?a=commitdiff_plain;h=4b6205495ed9c14b82770277f5d82ca080cd73c8;p=~ardavis%2Fdapl.git mcm: serialize dapls_evd_cqe_to_event calls with evd lock Signed-off-by: Arlin Davis --- diff --git a/dapl/openib_mcm/mix.c b/dapl/openib_mcm/mix.c index df37b33..c9c9672 100644 --- a/dapl/openib_mcm/mix.c +++ b/dapl/openib_mcm/mix.c @@ -1074,8 +1074,9 @@ int dapli_mix_dto_event_in(ib_hca_transport_t *tp, scif_epd_t scif_ep, dat_mix_d cookie->val.dto.size); } mcm_const_ib_wc(&ib_wc, &pmsg->wc[i], 1); + dapl_os_lock(&m_cq->evd->header.lock); dapls_evd_cqe_to_event(m_cq->evd, &ib_wc); - + dapl_os_unlock(&m_cq->evd->header.lock); } return 0; diff --git a/dapl/openib_mcm/proxy.c b/dapl/openib_mcm/proxy.c index d20456c..e81b6f1 100644 --- a/dapl/openib_mcm/proxy.c +++ b/dapl/openib_mcm/proxy.c @@ -189,7 +189,9 @@ static inline void mcm_dto_req(struct dcm_ib_cq *m_cq, struct ibv_wc *wc) m_qp->req_cq ? m_qp->req_cq->evd:0, m_qp->ep, m_qp->wr_tl, m_qp->wr_hd, m_qp->wc_tl, cookie); + dapl_os_lock(&m_qp->req_cq->evd->header.lock); dapls_evd_cqe_to_event(m_qp->req_cq->evd, wc); + dapl_os_unlock(&m_qp->req_cq->evd->header.lock); } /* RX work completion of RW data to remote PI, remote RR completion */ @@ -237,7 +239,9 @@ static inline void mcm_dto_rcv(struct dcm_ib_cq *m_cq, struct ibv_wc *wc) m_qp->wc_tl, cookie); mcm_const_ib_wc(&ib_wc, &m_wc->wc, 1); + dapl_os_lock(&m_qp->req_cq->evd->header.lock); dapls_evd_cqe_to_event(m_qp->req_cq->evd, &ib_wc); + dapl_os_unlock(&m_qp->req_cq->evd->header.lock); } bail: if (mcm_post_rcv_wc(m_qp, 1))