Skip to contentSkip to conversation

libvendor/osm_vendor_ibumad.c: Check the next CA card if the error is returned for the current one

PATCH New Hal Rosenstock 1 participant 1 message Jun 9, 2014 InfiniBand

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 libvendor/osm_vendor_ibumad.c: Check the next CA card if the error is returned for the current one

From: Vladimir Koushnir <vladimirk-VPRAkNaXOzVWk0Htik3J/[email protected]>

osm_vendor_open_port should check matching of the input GUID on all CA cards. When umad_get_ca_portguids returns an error on the current CA card,next card should be examined.
This change resolves an issue with Win opensm.
Win lower layers are not following libibumad Linux convention/assumption and are sometimes returning an error
when umad_get_ca_portguids is called from osm_vendor_open_port.

---
 libvendor/osm_vendor_ibumad.c |    6 +++++-
 1 files changed, 5 insertions(+), 1 deletions(-)
libvendor/osm_vendor_ibumad.c +5 -1
index 69020f2..838923b 100644
@@ -727,10 +727,14 @@ osm_vendor_open_port(IN osm_vendor_t * const p_vend,
 	for (ca = 0; ca < p_vend->ca_count; ca++) {
 		if ((r = umad_get_ca_portguids(p_vend->ca_names[ca], portguids,
 					       OSM_UMAD_MAX_PORTS_PER_CA + 1)) < 0) {
+#ifdef __WIN__
+			OSM_LOG(p_vend->p_log, OSM_LOG_VERBOSE,
+#else
 			OSM_LOG(p_vend->p_log, OSM_LOG_ERROR, "ERR 5421: "
+#endif
 				"Unable to get CA %s port guids (%s)\n",
 				p_vend->ca_names[ca], strerror(r));
-			goto Exit;
+			continue;
 		}
 		for (i = 0; i < r; i++)
 			if (port_guid == portguids[i]) {
Signature · 6 lines
1.7.8.2

--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html