diff --git a/ompi/mca/mtl/base/mtl_base_datatype.h b/ompi/mca/mtl/base/mtl_base_datatype.h index 7ecfc0971e..34ef61339b 100644 --- a/ompi/mca/mtl/base/mtl_base_datatype.h +++ b/ompi/mca/mtl/base/mtl_base_datatype.h @@ -23,6 +23,8 @@ #include "ompi/mca/mtl/base/base.h" #include "ompi/constants.h" #include "ompi/datatype/convertor.h" +#include "ompi/datatype/datatype.h" +#include "ompi/datatype/datatype_internal.h" static inline int ompi_mtl_datatype_pack(struct ompi_convertor_t *convertor, @@ -75,7 +77,8 @@ ompi_mtl_datatype_recv_buf(struct ompi_convertor_t *convertor, *free_on_error = true; } else { ompi_ddt_type_lb(convertor->pDesc, &lb); - *buffer = convertor->pBaseBuf + lb; + *buffer = convertor->pBaseBuf + lb + + convertor->use_desc->desc[convertor->use_desc->used].end_loop.first_elem_disp;; } return OMPI_SUCCESS; }