From: Vladimir Koushnir <[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.

Signed-off-by: Vladimir Koushnir <[email protected]>
Signed-off-by: Hal Rosenstock <[email protected]>
---
 libvendor/osm_vendor_ibumad.c |    6 +++++-
 1 files changed, 5 insertions(+), 1 deletions(-)

diff --git a/libvendor/osm_vendor_ibumad.c b/libvendor/osm_vendor_ibumad.c
index 69020f2..838923b 100644
--- a/libvendor/osm_vendor_ibumad.c
+++ b/libvendor/osm_vendor_ibumad.c
@@ -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]) {
-- 
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

Reply via email to