diff --git a/src/mca/ptl/elan/src/ptl_elan_priv.c b/src/mca/ptl/elan/src/ptl_elan_priv.c index 5d6286e298..195c2f1a52 100644 --- a/src/mca/ptl/elan/src/ptl_elan_priv.c +++ b/src/mca/ptl/elan/src/ptl_elan_priv.c @@ -424,7 +424,10 @@ mca_ptl_elan_init_put_desc (struct mca_ptl_elan_send_frag_t *frag, hdr->hdr_frag.hdr_src_ptr.pval = frag; /* No need to hook a frag */ hdr->hdr_frag.hdr_dst_ptr = pml_req->req_peer_match; hdr->hdr_frag.hdr_frag_length = size_in; - desc->src_elan_addr = elan4_main2elan (ctx, pml_req->req_base.req_addr); + + /* FIXME: provide a fix according to data contiguity */ + desc->src_elan_addr = elan4_main2elan (ctx, + ((char *)pml_req->req_base.req_addr + offset)); desc->dst_elan_addr = (E4_Addr)pml_req->req_peer_addr.lval; desc->desc_buff = hdr; LOG_PRINT(PTL_ELAN_DEBUG_PUT, " remote req %p addr %lx, length %d\n", diff --git a/src/mca/ptl/elan/src/ptl_elan_priv.h b/src/mca/ptl/elan/src/ptl_elan_priv.h index 7b5750797c..c4c1ef83c5 100644 --- a/src/mca/ptl/elan/src/ptl_elan_priv.h +++ b/src/mca/ptl/elan/src/ptl_elan_priv.h @@ -103,7 +103,7 @@ do { \ #define OMPI_PTL_ELAN_ZERO_FFRAG (0) #define OMPI_PTL_ELAN_ENABLE_GET (0) -#define OMPI_PTL_ELAN_COMP_QUEUE (1) +#define OMPI_PTL_ELAN_COMP_QUEUE (0) #define OMPI_PTL_ELAN_THREADING \ (OMPI_PTL_ELAN_COMP_QUEUE && OMPI_HAVE_POSIX_THREADS) diff --git a/src/mca/ptl/elan/tests/check.c b/src/mca/ptl/elan/tests/check.c index 0bec734067..c54df7a34f 100644 --- a/src/mca/ptl/elan/tests/check.c +++ b/src/mca/ptl/elan/tests/check.c @@ -9,7 +9,7 @@ #define MYBUFSIZE (4*1024*1024) #define CHECK 1 -#define PONG 0 +#define PONG 1 char s_buf[MYBUFSIZE]; char r_buf[MYBUFSIZE];