From 919ca0478d384a501d797cc37ea7ca72d59ac879 Mon Sep 17 00:00:00 2001 From: Amir Hanania Date: Tue, 3 May 2016 17:43:44 -0700 Subject: [PATCH] In case of MCM get the GID from the tp struct which was initialized in open device. Signed-off-by: Amir Hanania --- dapl/openib_common/util.c | 26 +++++++++++++++----------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/dapl/openib_common/util.c b/dapl/openib_common/util.c index fb27b81..557c7a7 100644 --- a/dapl/openib_common/util.c +++ b/dapl/openib_common/util.c @@ -538,24 +538,28 @@ DAT_RETURN dapls_ib_query_hca(IN DAPL_HCA * hca_ptr, tp->na.mtu = dapl_ib_mtu_str(tp->ib_cm.mtu); tp->na.port = dapl_ib_port_str(port_attr.state); tp->na.port_num = dapl_ib_port_num_str(hca_ptr->port_num); - /* get gid and init named attribute */ - ibv_query_gid(hca_ptr->ib_hca_handle, (uint8_t)hca_ptr->port_num, 0, &port_gid); - tp->na.gid = dapl_ib_gid_str(&port_gid, tp->gid_str); - if (!tp->guid) { + if (!tp->na.gid) { #ifdef _OPENIB_MCM_ - if (MFO_EP(&hca_ptr->ib_trans.addr) && tp->self.node) + if (MFO_EP(&hca_ptr->ib_trans.addr) && tp->self.node) { tp->guid = ntohll(dev_attr.node_guid); + memcpy(&port_gid, tp->addr.gid, sizeof(port_gid)); + } else #endif + { tp->guid = ntohll(ibv_get_device_guid(tp->ib_dev)); - } + /* get gid and init named attribute */ + ibv_query_gid(hca_ptr->ib_hca_handle, (uint8_t)hca_ptr->port_num, 0, &port_gid); + } - sprintf(tp->guid_str, "%04x:%04x:%04x:%04x", - (unsigned) (tp->guid >> 48) & 0xffff, - (unsigned) (tp->guid >> 32) & 0xffff, - (unsigned) (tp->guid >> 16) & 0xffff, - (unsigned) (tp->guid >> 0) & 0xffff); + tp->na.gid = dapl_ib_gid_str(&port_gid, tp->gid_str); + sprintf(tp->guid_str, "%04x:%04x:%04x:%04x", + (unsigned) (tp->guid >> 48) & 0xffff, + (unsigned) (tp->guid >> 32) & 0xffff, + (unsigned) (tp->guid >> 16) & 0xffff, + (unsigned) (tp->guid >> 0) & 0xffff); + } #ifdef _OPENIB_MCM_ /* initialized at open */ -- 2.46.0