[ofa-general] [PATCH 1/3] libvendor: osm_vendor_get_all_port_attr() rework
Sasha Khapyorsky
sashak at voltaire.com
Tue Jan 8 11:44:57 PST 2008
On 08:58 Tue 08 Jan , Hal Rosenstock wrote:
>
> Yes, but it goes further than checking in tree consumers and not
> everyone is paying attention all the time or running complete
> regressions frequently so this wasn't found until recently.
>
> This change broke autoselection on a machine running OpenSM with a
> combination of IB and iWARP adapters as it selected an iWARP adapter and
> exited.
Right, after reviewing this code again I see that it is possible
failure.
> If we care about continuing to support this feature, I suppose code
> might be able to be added to OpenSM main.c to handle this rather than it
> being in a lower layer as it was before.
We don't have appropriate indication in the vendor layer. I think non-IB
devices can be filtered out in osm_vendor_get_all_port_attr(), something
like this:
diff --git a/opensm/libvendor/osm_vendor_ibumad.c b/opensm/libvendor/osm_vendor_ibumad.c
index 522325b..977a3b2 100644
--- a/opensm/libvendor/osm_vendor_ibumad.c
+++ b/opensm/libvendor/osm_vendor_ibumad.c
@@ -571,6 +571,8 @@ osm_vendor_get_all_port_attr(IN osm_vendor_t * const p_vend,
* For each CA, retrieve the port guids
*/
if (umad_get_ca(p_vend->ca_names[i], &ca) == 0) {
+ if (ca.node_type < 1 || ca.node_type > 3)
+ continue;
for (j = 0; j <= ca.numports; j++) {
if (!ca.ports[j])
continue;
Sasha
More information about the general
mailing list