diff options
-rw-r--r-- | contrib/ofed/management/opensm/opensm/osm_ucast_ftree.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/contrib/ofed/management/opensm/opensm/osm_ucast_ftree.c b/contrib/ofed/management/opensm/opensm/osm_ucast_ftree.c index aa51d23..88a8c7b 100644 --- a/contrib/ofed/management/opensm/opensm/osm_ucast_ftree.c +++ b/contrib/ofed/management/opensm/opensm/osm_ucast_ftree.c @@ -2917,6 +2917,10 @@ Exit: /*************************************************** ***************************************************/ +static boolean_t __osm_invalid_link_rank_diff(const uint32_t val) +{ + return (val != 1U && val != -1U); +} static int __osm_ftree_fabric_construct_sw_ports(IN ftree_fabric_t * p_ftree, IN ftree_sw_t * p_sw) @@ -2993,7 +2997,7 @@ static int __osm_ftree_fabric_construct_sw_ports(IN ftree_fabric_t * p_ftree, p_remote_hca_or_sw = (void *)p_remote_sw; - if (abs(p_sw->rank - p_remote_sw->rank) != 1) { + if (__osm_invalid_link_rank_diff(p_sw->rank - p_remote_sw->rank)) { OSM_LOG(&p_ftree->p_osm->log, OSM_LOG_ERROR, "ERR AB16: " "Illegal link between switches with ranks %u and %u:\n" |