1
1

Remove use of ompi_ptr_ltop in BTLs. This fixes a crash seen on big-endian 32-bit platforms with MPI one-sided.

This commit was SVN r26776.
Этот коммит содержится в:
Nathan Hjelm 2012-07-10 16:18:53 +00:00
родитель 772ec212eb
Коммит 4c0c937953
4 изменённых файлов: 5 добавлений и 5 удалений

Просмотреть файл

@ -508,7 +508,7 @@ static int mca_btl_elan_put( mca_btl_base_module_t* btl,
mca_btl_base_segment_t* dst = des->des_dst;
unsigned char* src_addr = (unsigned char*)src->seg_addr.pval;
size_t src_len = src->seg_len;
unsigned char* dst_addr = (unsigned char*)ompi_ptr_ltop(dst->seg_addr.lval);
unsigned char* dst_addr = (unsigned char*)dst->seg_addr.pval;
frag->endpoint = endpoint;
frag->btl = elan_btl;

Просмотреть файл

@ -461,7 +461,7 @@ advance_iov_position11:
goto repeat11;
} else if (frag->iov_idx == 2) {
for(i=0; i<frag->hdr.count; i++) {
frag->iov[i+2].iov_base = (IOVBASE_TYPE*)ompi_ptr_ltop(frag->segments[i].seg_addr.lval);
frag->iov[i+2].iov_base = (IOVBASE_TYPE*) frag->segments[i].seg_addr.pval;
frag->iov[i+2].iov_len = frag->segments[i].seg_len;
frag->iov_cnt++;
}
@ -620,7 +620,7 @@ ret_false:
goto repeat;
} else if (frag->iov_idx == 2) {
for(i=0; i<frag->hdr.count; i++) {
frag->iov[i+2].iov_base = (IOVBASE_TYPE*)ompi_ptr_ltop(frag->segments[i].seg_addr.lval);
frag->iov[i+2].iov_base = (IOVBASE_TYPE*) frag->segments[i].seg_addr.pval;
frag->iov[i+2].iov_len = frag->segments[i].seg_len;
frag->iov_cnt++;
}

Просмотреть файл

@ -324,7 +324,7 @@ int mca_btl_self_rdma( struct mca_btl_base_module_t* btl,
size_t dst_cnt = des->des_dst_cnt;
unsigned char* src_addr = (unsigned char*)src->seg_addr.pval;
size_t src_len = src->seg_len;
unsigned char* dst_addr = (unsigned char*)ompi_ptr_ltop(dst->seg_addr.lval);
unsigned char* dst_addr = (unsigned char*)dst->seg_addr.pval;
size_t dst_len = dst->seg_len;
int btl_ownership = (des->des_flags & MCA_BTL_DES_FLAGS_BTL_OWNERSHIP);

Просмотреть файл

@ -267,7 +267,7 @@ bool mca_btl_tcp_frag_recv(mca_btl_tcp_frag_t* frag, int sd)
goto repeat;
} else if (frag->iov_idx == 2) {
for( i = 0; i < frag->hdr.count; i++ ) {
frag->iov[i+2].iov_base = (IOVBASE_TYPE*)ompi_ptr_ltop(frag->segments[i].seg_addr.pval);
frag->iov[i+2].iov_base = (IOVBASE_TYPE*)frag->segments[i].seg_addr.pval;
frag->iov[i+2].iov_len = frag->segments[i].seg_len;
}
frag->iov_cnt += frag->hdr.count;