diff --git a/ompi/mca/btl/mvapi/btl_mvapi_endpoint.h b/ompi/mca/btl/mvapi/btl_mvapi_endpoint.h index 4077e7d825..54832a93a2 100644 --- a/ompi/mca/btl/mvapi/btl_mvapi_endpoint.h +++ b/ompi/mca/btl/mvapi/btl_mvapi_endpoint.h @@ -212,7 +212,7 @@ void mca_btl_mvapi_post_recv(void); uint32_t post_rr_sub_i; \ int post_rr_sub_rc; \ opal_list_item_t* post_rr_sub_item; \ - mca_btl_mvapi_frag_t* post_rr_sub_frag; \ + mca_btl_mvapi_frag_t* post_rr_sub_frag = NULL; \ mca_btl_mvapi_module_t *post_rr_sub_mvapi_btl = post_rr_sub_endpoint->endpoint_btl; \ VAPI_rr_desc_t* post_rr_sub_desc_post = post_rr_sub_mvapi_btl->rr_desc_post; \ for(post_rr_sub_i = 0; post_rr_sub_i < post_rr_sub_cnt; post_rr_sub_i++) { \ @@ -228,10 +228,10 @@ void mca_btl_mvapi_post_recv(void); post_rr_sub_qp, \ post_rr_sub_cnt, \ post_rr_sub_desc_post); \ - if(VAPI_OK != post_rr_sub_frag->ret) { \ + if(NULL != post_rr_sub_frag && VAPI_OK != post_rr_sub_frag->ret) { \ BTL_ERROR(("error posting receive descriptors: %s",\ VAPI_strerror(post_rr_sub_frag->ret))); \ - } else {\ + } else if (NULL != post_rr_sub_frag){\ OPAL_THREAD_ADD32(post_rr_sub_rr_posted, post_rr_sub_cnt); \ }\ } diff --git a/ompi/mca/mpool/base/base.h b/ompi/mca/mpool/base/base.h index 77679ba7e6..2b8ee34dc1 100644 --- a/ompi/mca/mpool/base/base.h +++ b/ompi/mca/mpool/base/base.h @@ -31,13 +31,13 @@ extern "C" { #endif -static inline unsigned long my_log2(unsigned long val) { - unsigned long count = -1; +static inline unsigned int my_log2(unsigned long val) { + unsigned int count = 0; while(val > 0) { val = val >> 1; count++; } - return count; + return count > 0 ? count-1: 0; } static inline void *down_align_addr(void* addr, unsigned int shift) { return (void*) (((unsigned long) addr) & (~(unsigned long) 0) << shift); diff --git a/ompi/mca/mpool/base/mpool_base_mem_cb.c b/ompi/mca/mpool/base/mpool_base_mem_cb.c index 0c670e3e48..b67e52050a 100644 --- a/ompi/mca/mpool/base/mpool_base_mem_cb.c +++ b/ompi/mca/mpool/base/mpool_base_mem_cb.c @@ -62,7 +62,7 @@ void mca_mpool_base_mem_cb(void* base, size_t size, void* cbdata) for(i = 0; i < cnt; i++) { reg = (mca_mpool_base_registration_t*)ompi_pointer_array_get_item(®s, i); - if(base_addr < reg->bound) { + if(base_addr < (void*) reg->bound) { base_addr = down_align_addr( reg->bound, mca_mpool_base_page_size_log ); } current->mpool_module->mpool_deregister(current->mpool_module, reg);