diff --git a/ompi/mca/mtl/mxm/mtl_mxm_send.c b/ompi/mca/mtl/mxm/mtl_mxm_send.c index b0635e9c22..cd9f32a52b 100644 --- a/ompi/mca/mtl/mxm/mtl_mxm_send.c +++ b/ompi/mca/mtl/mxm/mtl_mxm_send.c @@ -45,10 +45,6 @@ int ompi_mtl_mxm_send(struct mca_mtl_base_module_t* mtl, mxm_send_req.base.mq = ompi_mtl_mxm_mq_lookup(comm); mxm_send_req.base.conn = ompi_mtl_mxm_conn_lookup(comm, dest); mxm_send_req.base.flags = MXM_REQ_FLAG_WAIT; - if (mode == MCA_PML_BASE_SEND_SYNCHRONOUS) { - mxm_send_req.base.flags |= MXM_REQ_FLAG_SEND_SYNC; - } - mxm_send_req.base.data_type = MXM_REQ_DATA_BUFFER; ret = ompi_mtl_datatype_pack(convertor, &mxm_send_req.base.data.buffer.ptr, &mxm_send_req.base.data.buffer.length, @@ -60,7 +56,12 @@ int ompi_mtl_mxm_send(struct mca_mtl_base_module_t* mtl, mxm_send_req.base.data.buffer.mkey = MXM_MKEY_NONE; mxm_send_req.base.context = NULL; mxm_send_req.base.completed_cb = NULL; - mxm_send_req.opcode = MXM_REQ_OP_SEND; + + if (mode == MCA_PML_BASE_SEND_SYNCHRONOUS) { + mxm_send_req.opcode = MXM_REQ_OP_SEND_SYNC; + } else { + mxm_send_req.opcode = MXM_REQ_OP_SEND; + } mxm_send_req.op.send.tag = tag; mxm_send_req.op.send.imm_data = ompi_comm_rank(comm); @@ -113,13 +114,15 @@ int ompi_mtl_mxm_isend(struct mca_mtl_base_module_t* mtl, mxm_send_req->base.data.buffer.mkey = MXM_MKEY_NONE; mxm_send_req->base.context = mtl_mxm_request; mxm_send_req->base.completed_cb = ompi_mtl_mxm_send_completion_cb; - mxm_send_req->opcode = MXM_REQ_OP_SEND; + + if (mode == MCA_PML_BASE_SEND_SYNCHRONOUS) { + mxm_send_req->opcode = MXM_REQ_OP_SEND_SYNC; + } else { + mxm_send_req->opcode = MXM_REQ_OP_SEND; + } mxm_send_req->op.send.tag = tag; mxm_send_req->op.send.imm_data = ompi_comm_rank(comm); - if (mode == MCA_PML_BASE_SEND_SYNCHRONOUS) { - mxm_send_req->base.flags |= MXM_REQ_FLAG_SEND_SYNC; - } /* post-send */ err = mxm_req_send(mxm_send_req);