blob: 8d04c265e34a0c9c46aad2db3ab572f74c23f968 [file] [log] [blame]
From: Asaf Mazor <amazor@nvidia.com>
Date: Mon, 17 Mar 2025 13:51:37 +0200
Subject: libibumad: Fix iteration index for switches
Updated start index from 1 to 0 in:
- count_ports_by_guid
- umad_get_smi_gsi_pairs
- umad_find_active
This fix should add support for switches
(In HCA port 0 will be null and skipped)
Fixes: be54b52e94be ("libibumad: Add new API to support SMI/GSI seperation")
Signed-off-by: Asaf Mazor <amazor@nvidia.com>
Origin: upstream, https://github.com/linux-rdma/rdma-core/pull/1583
---
libibumad/umad.c | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/libibumad/umad.c b/libibumad/umad.c
index db3eb52..644d43d 100644
--- a/libibumad/umad.c
+++ b/libibumad/umad.c
@@ -1444,9 +1444,9 @@ static int count_ports_by_guid(char legacy_ca_names[][UMAD_CA_NAME_LEN], size_t
if (umad_get_ca(legacy_ca_names[c_idx], &curr_ca) < 0)
continue;
- size_t p_idx = 1;
+ size_t p_idx = 0;
- for (p_idx = 1; p_idx < (size_t)curr_ca.numports + 1; ++p_idx) {
+ for (p_idx = 0; p_idx < (size_t)curr_ca.numports + 1; ++p_idx) {
umad_port_t *p_port = curr_ca.ports[p_idx];
size_t count_idx = 0;
@@ -1496,9 +1496,9 @@ int umad_get_smi_gsi_pairs(struct umad_ca_pair cas[], size_t max)
if (umad_get_ca(legacy_ca_names[c_idx], &curr_ca) < 0)
continue;
- size_t p_idx = 1;
+ size_t p_idx = 0;
- for (p_idx = 1; p_idx < (size_t)curr_ca.numports + 1; ++p_idx) {
+ for (p_idx = 0; p_idx < (size_t)curr_ca.numports + 1; ++p_idx) {
umad_port_t *p_port = curr_ca.ports[p_idx];
uint8_t guid_count = 0;
@@ -1558,7 +1558,7 @@ static int umad_find_active(struct umad_ca_pair *ca_pair, const umad_ca_t *ca, b
if (!ca_pair)
return 1;
- for (i = 1; i < (size_t)ca->numports + 1; ++i) {
+ for (i = 0; i < (size_t)ca->numports + 1; ++i) {
if (!umad_check_active(ca, i)) {
*portnum_to_set = ca->ports[i]->portnum;
return 0;