From bc973cad30b80aac07830d9be9d0a96810e14463 Mon Sep 17 00:00:00 2001 From: Artem Polyakov Date: Tue, 5 Jul 2016 14:33:31 +0300 Subject: [PATCH] fix --- ompi/mca/pml/yalla/pml_yalla.c | 13 +++++++++---- ompi/mca/pml/yalla/pml_yalla_request.c | 2 +- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/ompi/mca/pml/yalla/pml_yalla.c b/ompi/mca/pml/yalla/pml_yalla.c index ff3c12075d..724780e4da 100644 --- a/ompi/mca/pml/yalla/pml_yalla.c +++ b/ompi/mca/pml/yalla/pml_yalla.c @@ -681,14 +681,12 @@ int mca_pml_yalla_mrecv(void *buf, size_t count, ompi_datatype_t *datatype, int mca_pml_yalla_start(size_t count, ompi_request_t** requests) { mca_pml_yalla_base_request_t *req; - mca_pml_yalla_send_request_t *sreq; mxm_error_t error; size_t i; int rc; for (i = 0; i < count; ++i) { req = (mca_pml_yalla_base_request_t *)requests[i]; - sreq = (mca_pml_yalla_send_request_t *)req; if ((req == NULL) || (OMPI_REQUEST_PML != req->ompi.req_type)) { /* Skip irrelevant requests */ @@ -697,9 +695,12 @@ int mca_pml_yalla_start(size_t count, ompi_request_t** requests) PML_YALLA_ASSERT(req->ompi.req_state != OMPI_REQUEST_INVALID); PML_YALLA_RESET_OMPI_REQ(&req->ompi, OMPI_REQUEST_ACTIVE); - PML_YALLA_RESET_PML_REQ(req, PML_YALLA_MXM_REQBASE(sreq)); if (req->flags & MCA_PML_YALLA_REQUEST_FLAG_SEND) { + mca_pml_yalla_send_request_t *sreq; + sreq = (mca_pml_yalla_send_request_t *)req; + PML_YALLA_RESET_PML_REQ(req, PML_YALLA_MXM_REQBASE(sreq)); + if (req->flags & MCA_PML_YALLA_REQUEST_FLAG_BSEND) { PML_YALLA_VERBOSE(8, "start bsend request %p", (void *)sreq); rc = mca_pml_yalla_bsend(&sreq->mxm); @@ -716,8 +717,12 @@ int mca_pml_yalla_start(size_t count, ompi_request_t** requests) } } } else { + mca_pml_yalla_recv_request_t *rreq; + rreq = (mca_pml_yalla_recv_request_t *)req; + PML_YALLA_RESET_PML_REQ(req, PML_YALLA_MXM_REQBASE(rreq)); + PML_YALLA_VERBOSE(8, "start recv request %p", (void *)req); - error = mxm_req_recv(&((mca_pml_yalla_recv_request_t *)req)->mxm); + error = mxm_req_recv(&rreq->mxm); if (MXM_OK != error) { return OMPI_ERROR; } diff --git a/ompi/mca/pml/yalla/pml_yalla_request.c b/ompi/mca/pml/yalla/pml_yalla_request.c index dd9e343a96..91fe5cea6f 100644 --- a/ompi/mca/pml/yalla/pml_yalla_request.c +++ b/ompi/mca/pml/yalla/pml_yalla_request.c @@ -34,7 +34,7 @@ static inline void mca_pml_yalla_request_release(mca_pml_yalla_base_request_t *r static inline int mca_pml_yalla_check_request_state(mca_pml_yalla_base_request_t *req, mxm_req_base_t *mxm_base) { - if ( mxm_base->state != MXM_REQ_COMPLETED) { + if (mxm_base->state != MXM_REQ_COMPLETED) { PML_YALLA_VERBOSE(8, "request %p free called before completed", (void*)req); req->flags |= MCA_PML_YALLA_REQUEST_FLAG_FREE_CALLED; return 0;