- dst = smpi_mpi_comm_rank_self(comm);
- retval = smpi_create_request(buf, count, datatype, src, dst, tag, comm, request);
- if (NULL != *request) {
- smpi_irecv(*request);
+
+ if (NULL == request) {
+ retval = MPI_ERR_ARG;
+ } else {
+ int dst = 0;
+ retval = smpi_create_request(buf, count, datatype, src, dst, tag, comm, request);
+ if (NULL != *request && MPI_SUCCESS == retval) {
+ retval = smpi_mpi_irecv(*request);
+ }