diff --git a/ompi/mca/mtl/mx/mtl_mx_probe.c b/ompi/mca/mtl/mx/mtl_mx_probe.c index 6c3d29584a..3e9106ef6b 100644 --- a/ompi/mca/mtl/mx/mtl_mx_probe.c +++ b/ompi/mca/mtl/mx/mtl_mx_probe.c @@ -58,11 +58,12 @@ ompi_mtl_mx_iprobe(struct mca_mtl_base_module_t* mtl, } if (result) { - status->MPI_ERROR = OMPI_SUCCESS; - MX_GET_SRC(mx_status.match_info, status->MPI_SOURCE); - MX_GET_TAG(mx_status.match_info, status->MPI_TAG); - status->_count = mx_status.msg_length; - + if(MPI_STATUS_IGNORE != status) { + status->MPI_ERROR = OMPI_SUCCESS; + MX_GET_SRC(mx_status.match_info, status->MPI_SOURCE); + MX_GET_TAG(mx_status.match_info, status->MPI_TAG); + status->_count = mx_status.msg_length; + } *flag = 1; } else { *flag = 0; diff --git a/ompi/mca/mtl/psm/mtl_psm_probe.c b/ompi/mca/mtl/psm/mtl_psm_probe.c index 822fa3e3c5..5457c64b65 100644 --- a/ompi/mca/mtl/psm/mtl_psm_probe.c +++ b/ompi/mca/mtl/psm/mtl_psm_probe.c @@ -41,11 +41,12 @@ int ompi_mtl_psm_iprobe(struct mca_mtl_base_module_t* mtl, err = psm_mq_iprobe(ompi_mtl_psm.mq, mqtag, tagsel, &mqstat); if (err == PSM_OK) { *flag = 1; - status->MPI_SOURCE = PSM_GET_MQRANK(mqstat.msg_tag); - status->MPI_TAG = PSM_GET_MQUTAG(mqstat.msg_tag); - status->_count = mqstat.nbytes; + if(MPI_STATUS_IGNORE != status) { + status->MPI_SOURCE = PSM_GET_MQRANK(mqstat.msg_tag); + status->MPI_TAG = PSM_GET_MQUTAG(mqstat.msg_tag); + status->_count = mqstat.nbytes; - switch (mqstat.error_code) { + switch (mqstat.error_code) { case PSM_OK: status->MPI_ERROR = OMPI_SUCCESS; break; @@ -54,8 +55,10 @@ int ompi_mtl_psm_iprobe(struct mca_mtl_base_module_t* mtl, break; default: status->MPI_ERROR = MPI_ERR_INTERN; - } - return OMPI_SUCCESS; + } + } + + return OMPI_SUCCESS; } else if (err == PSM_MQ_INCOMPLETE) { *flag = 0;