diff --git a/ompi/mca/pml/ob1/pml_ob1.c b/ompi/mca/pml/ob1/pml_ob1.c index e582fd93b3..f08c500a61 100644 --- a/ompi/mca/pml/ob1/pml_ob1.c +++ b/ompi/mca/pml/ob1/pml_ob1.c @@ -249,7 +249,7 @@ static void mca_pml_ob1_fin_completion( MCA_PML_OB1_PROGRESS_PENDING(bml_btl); } -int mca_pml_ob1_send_fin_btl( +int mca_pml_ob1_send_fin( ompi_proc_t* proc, mca_bml_base_btl_t* bml_btl, void *hdr_des, @@ -262,6 +262,7 @@ int mca_pml_ob1_send_fin_btl( MCA_PML_OB1_DES_ALLOC(bml_btl, fin, order, sizeof(mca_pml_ob1_fin_hdr_t)); if(NULL == fin) { + MCA_PML_OB1_ADD_FIN_TO_PENDING(proc, hdr_des, bml_btl, order); return OMPI_ERR_OUT_OF_RESOURCE; } fin->des_flags |= MCA_BTL_DES_FLAGS_PRIORITY; @@ -295,6 +296,7 @@ int mca_pml_ob1_send_fin_btl( MCA_BTL_TAG_PML ); if(OMPI_SUCCESS != rc) { + MCA_PML_OB1_ADD_FIN_TO_PENDING(proc, hdr_des, bml_btl, order); MCA_BML_BASE_BTL_DES_RETURN(bml_btl, fin); return OMPI_ERR_OUT_OF_RESOURCE; } @@ -348,15 +350,12 @@ void mca_pml_ob1_process_pending_packets(mca_bml_base_btl_t* bml_btl) } break; case MCA_PML_OB1_HDR_TYPE_FIN: - rc = mca_pml_ob1_send_fin_btl(pckt->proc, send_dst, + rc = mca_pml_ob1_send_fin(pckt->proc, send_dst, pckt->hdr.hdr_fin.hdr_des.pval, pckt->order); MCA_PML_OB1_PCKT_PENDING_RETURN(pckt); - if(OMPI_ERR_OUT_OF_RESOURCE == rc) { - MCA_PML_OB1_ADD_FIN_TO_PENDING(pckt->proc, - pckt->hdr.hdr_fin.hdr_des.pval, pckt->bml_btl, pckt->order); + if(OMPI_ERR_OUT_OF_RESOURCE == rc) return; - } break; default: opal_output(0, "[%s:%d] wrong header type\n", diff --git a/ompi/mca/pml/ob1/pml_ob1.h b/ompi/mca/pml/ob1/pml_ob1.h index f74f31e84f..49c3f3fa0b 100644 --- a/ompi/mca/pml/ob1/pml_ob1.h +++ b/ompi/mca/pml/ob1/pml_ob1.h @@ -283,20 +283,9 @@ do { \ } while(0) -int mca_pml_ob1_send_fin_btl(ompi_proc_t* proc, mca_bml_base_btl_t* bml_btl, +int mca_pml_ob1_send_fin(ompi_proc_t* proc, mca_bml_base_btl_t* bml_btl, void *hdr_des, uint8_t order); -static inline int mca_pml_ob1_send_fin(ompi_proc_t* proc, - mca_bml_base_btl_t* bml_btl, void *hdr_des, uint8_t order) -{ - if(mca_pml_ob1_send_fin_btl(proc, bml_btl, hdr_des, order) == OMPI_SUCCESS) - return OMPI_SUCCESS; - - MCA_PML_OB1_ADD_FIN_TO_PENDING(proc, hdr_des, bml_btl, order); - - return OMPI_ERR_OUT_OF_RESOURCE; -} - /* This function tries to resend FIN/ACK packets from pckt_pending queue. * Packets are added to the queue when sending of FIN or ACK is failed due to * resource unavailability. bml_btl passed to the function doesn't represents