diff --git a/ompi/mca/pml/dr/pml_dr_recvreq.h b/ompi/mca/pml/dr/pml_dr_recvreq.h index 396084b1fa..a61a9ba3ec 100644 --- a/ompi/mca/pml/dr/pml_dr_recvreq.h +++ b/ompi/mca/pml/dr/pml_dr_recvreq.h @@ -224,6 +224,7 @@ do { (request)->req_recv.req_base.req_ompi.req_status.MPI_TAG = (hdr)->hdr_tag; \ (request)->req_recv.req_base.req_ompi.req_status.MPI_SOURCE = \ (hdr)->hdr_common.hdr_src; \ + (request)->req_vfrag0.vf_id = (hdr)->hdr_common.hdr_vid; \ opal_list_append(&proc->matched_receives, (opal_list_item_t*)request); \ ompi_seq_tracker_insert(&proc->seq_recvs_matched, (hdr)->hdr_common.hdr_vid); \ } while(0) @@ -338,7 +339,7 @@ static inline struct mca_pml_dr_recv_request_t* mca_pml_dr_comm_proc_check_match item != opal_list_get_end(&dr_proc->matched_receives); item = opal_list_get_next(item)) { struct mca_pml_dr_recv_request_t* recvreq = (struct mca_pml_dr_recv_request_t*)item; - if(recvreq->req_vfrag->vf_id == vfrag_id) + if(recvreq->req_vfrag0.vf_id == vfrag_id) return recvreq; } return NULL; diff --git a/ompi/mca/pml/dr/pml_dr_sendreq.c b/ompi/mca/pml/dr/pml_dr_sendreq.c index 8b856b9ed1..eb7f497010 100644 --- a/ompi/mca/pml/dr/pml_dr_sendreq.c +++ b/ompi/mca/pml/dr/pml_dr_sendreq.c @@ -644,6 +644,7 @@ int mca_pml_dr_send_request_schedule(mca_pml_dr_send_request_t* sendreq) * the scheduling logic once for every call. */ + assert(sendreq->req_vfrag0.vf_recv.pval != NULL); mca_bml_base_endpoint_t* bml_endpoint = sendreq->req_endpoint; if(OPAL_THREAD_ADD32(&sendreq->req_lock,1) == 1) { do { @@ -931,7 +932,7 @@ void mca_pml_dr_send_request_rndv_ack( /* done? */ sendreq->req_bytes_delivered = ack->hdr_vlen; - if(sendreq->req_bytes_delivered == sendreq->req_send.req_bytes_packed){ + if(sendreq->req_bytes_delivered == sendreq->req_send.req_bytes_packed) { MCA_PML_DR_SEND_REQUEST_PML_COMPLETE(sendreq); } else { vfrag->vf_recv = ack->hdr_dst_ptr;