1
1

On 64 bit platform if high 32 bits of buf address is not zero they are trimmed

by wrong bitwise and. Fix it by expanding mask to 64 bits.

This commit was SVN r12368.
Этот коммит содержится в:
Gleb Natapov 2006-10-31 07:33:35 +00:00
родитель 63155bca09
Коммит 1b152dfe09

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

@ -1206,8 +1206,11 @@ void mca_btl_openib_endpoint_connect_eager_rdma(
if(!buf)
goto unlock_rdma_local;
buf = (char*)(((uintptr_t)buf+mca_btl_openib_component.buffer_alignment) & ~(mca_btl_openib_component.buffer_alignment-1));
buf = buf + openib_btl->eager_rdma_frag_size - sizeof(mca_btl_openib_footer_t) - openib_btl->super.btl_eager_limit - sizeof(mca_btl_openib_header_t) - sizeof(mca_btl_openib_frag_t);
buf = (char*)(((uintptr_t)buf + mca_btl_openib_component.buffer_alignment) &
~((uintptr_t)mca_btl_openib_component.buffer_alignment - 1));
buf = buf + openib_btl->eager_rdma_frag_size -
sizeof(mca_btl_openib_footer_t) - openib_btl->super.btl_eager_limit -
sizeof(mca_btl_openib_header_t) - sizeof(mca_btl_openib_frag_t);
for(i = 0; i < mca_btl_openib_component.eager_rdma_num; i++) {
ompi_free_list_item_t *item = (ompi_free_list_item_t *)(buf +