[openib-general] [PATCHv2] OpenSM: Workaround for IBM eHCA logical switch partition enforcement
Hal Rosenstock
halr at voltaire.com
Thu Nov 3 07:53:39 PST 2005
OpenSM: Workaround for IBM eHCA logical switch partition enforcement
The problem is that the eHCA logical switches do not support partition
enforcement. This *should* be reflected by a zero value in the
PartitionEnforcementCap component of the switchinfo attribute. The IBM
firmware bug is that it returns a one rather than a zero in this field.
However, when subsequent requests to the switch port are received for
the P_KeyTable, the firmware drops them on the floor and opensm thrashes
timing out all the get P_KeyTable MADs it issues for all of the ports on
the two logical switches.
Remainder of patch supplied by Brad Benton <brad.benton at us.ibm.com>
Signed-off-by: Hal Rosenstock <halr at voltaire.com>
Index: osm_port_info_rcv.c
===================================================================
--- osm_port_info_rcv.c (revision 3959)
+++ osm_port_info_rcv.c (working copy)
@@ -416,6 +416,7 @@ __osm_pi_rcv_process_router_port(
OSM_LOG_EXIT( p_rcv->p_log );
}
+#define IBM_VENDOR_ID (0x5076)
/**********************************************************************
**********************************************************************/
void osm_pkey_get_tables(
@@ -468,7 +469,11 @@ void osm_pkey_get_tables(
goto Exit;
}
- /* bail out if this is a switch with no partition enforcement capability */
+ /* Check for IBM eHCA firmware defect in reporting partition enforcement cap */
+ if (cl_ntoh32(ib_node_info_get_vendor_id(&p_node->node_info)) == IBM_VENDOR_ID)
+ p_switch->switch_info.enforce_cap = 0;
+
+ /* Bail out if this is a switch with no partition enforcement capability */
if (cl_ntoh16(p_switch->switch_info.enforce_cap) == 0)
goto Exit;
More information about the general
mailing list