From 7afce316ea87782fdaf99ee28e39d5ea0ecbdb6f Mon Sep 17 00:00:00 2001 From: Edgar Date: Mon, 14 Feb 2022 22:46:57 +0000 Subject: [PATCH] UCT/ROCM: use base_iface_internal_ops in constructor in the class constructor passing NULL instead of a valid internal_ops can lead to a segfault. Use &uct_base_iface_internal_ops to avoid this problem in rocm/ipc and rocm/gdr. Signed-off-by: Edgar --- src/uct/rocm/gdr/rocm_gdr_iface.c | 3 ++- src/uct/rocm/ipc/rocm_ipc_iface.c | 5 +++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/uct/rocm/gdr/rocm_gdr_iface.c b/src/uct/rocm/gdr/rocm_gdr_iface.c index 58d05a29fea..68c3e58e2c4 100644 --- a/src/uct/rocm/gdr/rocm_gdr_iface.c +++ b/src/uct/rocm/gdr/rocm_gdr_iface.c @@ -121,7 +121,8 @@ static UCS_CLASS_INIT_FUNC(uct_rocm_gdr_iface_t, uct_md_h md, uct_worker_h worke const uct_iface_params_t *params, const uct_iface_config_t *tl_config) { - UCS_CLASS_CALL_SUPER_INIT(uct_base_iface_t, &uct_rocm_gdr_iface_ops, NULL, + UCS_CLASS_CALL_SUPER_INIT(uct_base_iface_t, &uct_rocm_gdr_iface_ops, + &uct_base_iface_internal_ops, md, worker, params, tl_config UCS_STATS_ARG(params->stats_root) UCS_STATS_ARG(UCT_ROCM_GDR_TL_NAME)); diff --git a/src/uct/rocm/ipc/rocm_ipc_iface.c b/src/uct/rocm/ipc/rocm_ipc_iface.c index 1309a2aee76..02135c86103 100644 --- a/src/uct/rocm/ipc/rocm_ipc_iface.c +++ b/src/uct/rocm/ipc/rocm_ipc_iface.c @@ -225,8 +225,9 @@ static UCS_CLASS_INIT_FUNC(uct_rocm_ipc_iface_t, uct_md_h md, uct_worker_h worke { ucs_status_t status; - UCS_CLASS_CALL_SUPER_INIT(uct_base_iface_t, &uct_rocm_ipc_iface_ops, NULL, - md, worker, params, + UCS_CLASS_CALL_SUPER_INIT(uct_base_iface_t, &uct_rocm_ipc_iface_ops, + &uct_base_iface_internal_ops, + md, worker, params, tl_config UCS_STATS_ARG(params->stats_root) UCS_STATS_ARG(UCT_ROCM_IPC_TL_NAME));