OSHMEM: Fix call prepare_src with a NULL endpoint
see issue: https://svn.open-mpi.org/trac/ompi/ticket/4399 Refs trac:4399 fixed by Igor, reviewed by Alex cmr=v1.7.5:reviewer=ompi-rm1.7 This commit was SVN r31168. The following Trac tickets were found above: Ticket 4399 --> https://svn.open-mpi.org/trac/ompi/ticket/4399
Этот коммит содержится в:
родитель
08fd24f452
Коммит
d8288fa39d
@ -411,10 +411,6 @@ sshmem_mkey_t *mca_spml_yoda_register(void* addr,
|
||||
|
||||
yoda_context->registration = NULL;
|
||||
if (NULL != ybtl->btl->btl_prepare_src) {
|
||||
int btl_id;
|
||||
mca_bml_base_btl_t* bml_btl;
|
||||
|
||||
bml_btl = get_next_btl(oshmem_my_proc_id(), &btl_id);
|
||||
|
||||
/* initialize convertor for source descriptor*/
|
||||
opal_convertor_copy_and_prepare_for_recv(proc_self->proc_convertor,
|
||||
@ -442,7 +438,7 @@ sshmem_mkey_t *mca_spml_yoda_register(void* addr,
|
||||
|
||||
/* register source memory */
|
||||
des = ybtl->btl->btl_prepare_src(ybtl->btl,
|
||||
bml_btl->btl_endpoint,
|
||||
ybtl->bml_btl->btl_endpoint,
|
||||
yoda_context->registration,
|
||||
&convertor,
|
||||
MCA_BTL_NO_ORDER,
|
||||
@ -484,7 +480,7 @@ static void mca_spml_yoda_error_handler(struct mca_btl_base_module_t* btl,
|
||||
/* make global btl list&map */
|
||||
static int create_btl_list(void)
|
||||
{
|
||||
int btl_id;
|
||||
int btl_type;
|
||||
char *btl_name;
|
||||
int size;
|
||||
opal_list_item_t *item;
|
||||
@ -510,12 +506,15 @@ static int create_btl_list(void)
|
||||
|
||||
btl_sm = (mca_btl_base_selected_module_t *) item;
|
||||
btl_name = btl_sm->btl_component->btl_version.mca_component_name;
|
||||
btl_id = btl_name_to_id(btl_name);
|
||||
btl_type = btl_name_to_id(btl_name);
|
||||
|
||||
SPML_VERBOSE(50, "found btl (%s) btl_id=%d", btl_name, btl_id);
|
||||
SPML_VERBOSE(50, "found btl (%s) btl_type=%s", btl_name, btl_type2str(btl_type));
|
||||
|
||||
/* Note: we setup bml_btl in create_btl_idx() */
|
||||
mca_spml_yoda.btl_type_map[mca_spml_yoda.n_btls].bml_btl = NULL;
|
||||
mca_spml_yoda.btl_type_map[mca_spml_yoda.n_btls].btl =
|
||||
btl_sm->btl_module;
|
||||
mca_spml_yoda.btl_type_map[mca_spml_yoda.n_btls].btl_type = btl_id;
|
||||
mca_spml_yoda.btl_type_map[mca_spml_yoda.n_btls].btl_type = btl_type;
|
||||
mca_spml_yoda.n_btls++;
|
||||
}
|
||||
|
||||
@ -601,6 +600,7 @@ static int create_btl_idx(int dst_pe)
|
||||
return OSHMEM_ERROR;
|
||||
}
|
||||
proc->transport_ids[i] = btl_id;
|
||||
mca_spml_yoda.btl_type_map[btl_id].bml_btl = bml_btl;
|
||||
mca_spml_yoda.btl_type_map[btl_id].use_cnt++;
|
||||
}
|
||||
return OSHMEM_SUCCESS;
|
||||
|
@ -55,6 +55,7 @@ enum {
|
||||
|
||||
struct yoda_btl {
|
||||
mca_btl_base_module_t *btl;
|
||||
mca_bml_base_btl_t *bml_btl;
|
||||
int btl_type;
|
||||
int use_cnt;
|
||||
};
|
||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user