uDAPL has an expects memory for enumerating interface adapters in a really
weird way - fix up to do things 'properly'. Add my sandia username to the unignore. This commit was SVN r9879.
Этот коммит содержится в:
родитель
0bd5a5c03b
Коммит
4c3aa05c83
@ -1 +1,2 @@
|
|||||||
afriedle
|
afriedle
|
||||||
|
afriedl
|
||||||
|
@ -255,6 +255,7 @@ mca_btl_udapl_component_init (int *num_btl_modules,
|
|||||||
bool enable_mpi_threads)
|
bool enable_mpi_threads)
|
||||||
{
|
{
|
||||||
DAT_PROVIDER_INFO* datinfo;
|
DAT_PROVIDER_INFO* datinfo;
|
||||||
|
DAT_PROVIDER_INFO** datinfoptr;
|
||||||
mca_btl_base_module_t **btls;
|
mca_btl_base_module_t **btls;
|
||||||
mca_btl_udapl_module_t *btl;
|
mca_btl_udapl_module_t *btl;
|
||||||
DAT_COUNT num_ias;
|
DAT_COUNT num_ias;
|
||||||
@ -263,18 +264,30 @@ mca_btl_udapl_component_init (int *num_btl_modules,
|
|||||||
OPAL_OUTPUT((0, "udapl_component_init\n"));
|
OPAL_OUTPUT((0, "udapl_component_init\n"));
|
||||||
|
|
||||||
/* enumerate uDAPL interfaces */
|
/* enumerate uDAPL interfaces */
|
||||||
|
/* Have to do weird pointer stuff to make uDAPL happy -
|
||||||
|
just an array of DAT_PROVIDER_INFO isn't good enough. */
|
||||||
datinfo = malloc(sizeof(DAT_PROVIDER_INFO) *
|
datinfo = malloc(sizeof(DAT_PROVIDER_INFO) *
|
||||||
mca_btl_udapl_component.udapl_max_btls);
|
mca_btl_udapl_component.udapl_max_btls);
|
||||||
if(NULL == datinfo) {
|
datinfoptr = malloc(sizeof(DAT_PROVIDER_INFO*) *
|
||||||
|
mca_btl_udapl_component.udapl_max_btls);
|
||||||
|
if(NULL == datinfo || NULL == datinfoptr) {
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for(i = 0; i < mca_btl_udapl_component.udapl_max_btls; i++) {
|
||||||
|
datinfoptr[i] = &datinfo[i];
|
||||||
|
}
|
||||||
|
|
||||||
if(DAT_SUCCESS != dat_registry_list_providers(
|
if(DAT_SUCCESS != dat_registry_list_providers(
|
||||||
mca_btl_udapl_component.udapl_max_btls,
|
mca_btl_udapl_component.udapl_max_btls,
|
||||||
(DAT_COUNT*)&num_ias, &datinfo)) {
|
(DAT_COUNT*)&num_ias, &datinfo)) {
|
||||||
free(datinfo);
|
free(datinfo);
|
||||||
|
free(datinfoptr);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
free(datinfoptr);
|
||||||
|
|
||||||
/* allocate space for the each possible BTL */
|
/* allocate space for the each possible BTL */
|
||||||
mca_btl_udapl_component.udapl_btls = (mca_btl_udapl_module_t **)
|
mca_btl_udapl_component.udapl_btls = (mca_btl_udapl_module_t **)
|
||||||
malloc(num_ias * sizeof(mca_btl_udapl_module_t *));
|
malloc(num_ias * sizeof(mca_btl_udapl_module_t *));
|
||||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user