@@ -408,6 +408,7 @@ static int mca_pml_ob1_recv_request_put_frag (mca_pml_ob1_rdma_frag_t *frag)
408
408
#if OPAL_ENABLE_HETEROGENEOUS_SUPPORT
409
409
ompi_proc_t * proc = (ompi_proc_t * )recvreq -> req_recv .req_base .req_proc ;
410
410
#endif
411
+ mca_btl_base_registration_handle_t * local_handle = NULL ;
411
412
mca_bml_base_btl_t * bml_btl = frag -> rdma_bml ;
412
413
mca_btl_base_descriptor_t * ctl ;
413
414
mca_pml_ob1_rdma_hdr_t * hdr ;
@@ -416,6 +417,12 @@ static int mca_pml_ob1_recv_request_put_frag (mca_pml_ob1_rdma_frag_t *frag)
416
417
417
418
reg_size = bml_btl -> btl -> btl_registration_handle_size ;
418
419
420
+ if (frag -> local_handle ) {
421
+ local_handle = frag -> local_handle ;
422
+ } else if (recvreq -> local_handle ) {
423
+ local_handle = recvreq -> local_handle ;
424
+ }
425
+
419
426
/* prepare a descriptor for rdma control message */
420
427
mca_bml_base_alloc (bml_btl , & ctl , MCA_BTL_NO_ORDER , sizeof (mca_pml_ob1_rdma_hdr_t ) + reg_size ,
421
428
MCA_BTL_DES_FLAGS_PRIORITY | MCA_BTL_DES_FLAGS_BTL_OWNERSHIP |
@@ -429,7 +436,7 @@ static int mca_pml_ob1_recv_request_put_frag (mca_pml_ob1_rdma_frag_t *frag)
429
436
hdr = (mca_pml_ob1_rdma_hdr_t * ) ctl -> des_segments -> seg_addr .pval ;
430
437
mca_pml_ob1_rdma_hdr_prepare (hdr , (!recvreq -> req_ack_sent ) ? MCA_PML_OB1_HDR_TYPE_ACK : 0 ,
431
438
recvreq -> remote_req_send .lval , frag , recvreq , frag -> rdma_offset ,
432
- frag -> local_address , frag -> rdma_length , frag -> local_handle ,
439
+ frag -> local_address , frag -> rdma_length , local_handle ,
433
440
reg_size );
434
441
ob1_hdr_hton (hdr , MCA_PML_OB1_HDR_TYPE_PUT , proc );
435
442
0 commit comments