| 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; |