X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/70a1c67dc21179a44b0b317a1ea4823b63b7c666..21446da234b79358c6f7ed918e582e7e5a36d8b3:/src/smpi/colls/reduce-mvapich-knomial.c diff --git a/src/smpi/colls/reduce-mvapich-knomial.c b/src/smpi/colls/reduce-mvapich-knomial.c index e2df112d88..7ec5c64797 100644 --- a/src/smpi/colls/reduce-mvapich-knomial.c +++ b/src/smpi/colls/reduce-mvapich-knomial.c @@ -172,7 +172,7 @@ int smpi_coll_tuned_reduce_mvapich2_knomial ( &dst, &expected_send_count, &expected_recv_count, &src_array); if(expected_recv_count > 0 ) { - tmp_buf = smpi_get_tmp_recvbuffer(sizeof(void *)*expected_recv_count); + tmp_buf = xbt_malloc(sizeof(void *)*expected_recv_count); requests = xbt_malloc(sizeof(MPI_Request)*expected_recv_count); for(k=0; k < expected_recv_count; k++ ) { tmp_buf[k] = smpi_get_tmp_sendbuffer(count*(MAX(extent,true_extent))); @@ -202,12 +202,12 @@ int smpi_coll_tuned_reduce_mvapich2_knomial ( for(k=0; k < expected_recv_count; k++ ) { smpi_free_tmp_buffer(tmp_buf[k]); } - smpi_free_tmp_buffer(tmp_buf); + xbt_free(tmp_buf); xbt_free(requests); } if(src_array != NULL) { - smpi_free_tmp_buffer(src_array); + xbt_free(src_array); } if(rank != root) { @@ -215,6 +215,8 @@ int smpi_coll_tuned_reduce_mvapich2_knomial ( COLL_TAG_REDUCE,comm); smpi_mpi_waitall(1, &send_request, &status); + + smpi_free_tmp_buffer((void *)((char*)recvbuf + true_lb)); } /* --END ERROR HANDLING-- */