OSHMEM: fixes addr_acessible()
check every possible transport Signed-off-by: Alex Mikheev <alexm@mellanox.com>
Этот коммит содержится в:
родитель
23c3dc8345
Коммит
61bd59a369
@ -226,6 +226,11 @@ static inline sshmem_mkey_t *mca_memheap_base_get_cached_mkey(int pe,
|
|||||||
return mca_memheap_base_get_cached_mkey_slow(s, pe, va, btl_id, rva);
|
return mca_memheap_base_get_cached_mkey_slow(s, pe, va, btl_id, rva);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static inline int mca_memheap_base_num_transports(void)
|
||||||
|
{
|
||||||
|
return memheap_map->num_transports;
|
||||||
|
}
|
||||||
|
|
||||||
END_C_DECLS
|
END_C_DECLS
|
||||||
|
|
||||||
#endif /* MCA_MEMHEAP_BASE_H */
|
#endif /* MCA_MEMHEAP_BASE_H */
|
||||||
|
@ -26,10 +26,16 @@ int shmem_addr_accessible(const void *addr, int pe)
|
|||||||
{
|
{
|
||||||
void* rva;
|
void* rva;
|
||||||
sshmem_mkey_t *mkey;
|
sshmem_mkey_t *mkey;
|
||||||
|
int i;
|
||||||
|
|
||||||
RUNTIME_CHECK_INIT();
|
RUNTIME_CHECK_INIT();
|
||||||
|
|
||||||
mkey = mca_memheap_base_get_cached_mkey(pe, (void *)addr, oshmem_get_transport_id(pe), &rva);
|
for (i = 0; i < mca_memheap_base_num_transports(); i++) {
|
||||||
|
mkey = mca_memheap_base_get_cached_mkey(pe, (void *)addr, i, &rva);
|
||||||
|
if (mkey) {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return mkey ? 1 : 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user