Look fine to me. Eitan Zahavi Design Technology Director Mellanox Technologies LTD Tel:+972-4-9097208 Fax:+972-4-9593245 P.O. Box 586 Yokneam 20692 ISRAEL
> -----Original Message----- > From: Sasha Khapyorsky [mailto:[EMAIL PROTECTED] > Sent: Sunday, April 23, 2006 5:26 PM > To: Hal Rosenstock > Cc: [email protected]; Eitan Zahavi; Ofer Gigi; Yael Kalka > Subject: [PATCH 1/4] opensm: don't try to enforce partitions on router port > > > When router port is connected directly to CA don't try handle it as > switch external ports (update pkey table and enforce partitions). > Router ports are handled by partition manager as end ports. > > Signed-off-by: Sasha Khapyorsky <[EMAIL PROTECTED]> > --- > > osm/opensm/osm_pkey_mgr.c | 43 ++++++++++++++++++++----------------------- > 1 files changed, 20 insertions(+), 23 deletions(-) > > diff --git a/osm/opensm/osm_pkey_mgr.c b/osm/opensm/osm_pkey_mgr.c > index 938632e..bdb3ae4 100644 > --- a/osm/opensm/osm_pkey_mgr.c > +++ b/osm/opensm/osm_pkey_mgr.c > @@ -307,7 +307,8 @@ __osm_pkey_mgr_process_physical_port( > static void > osm_pkey_mgr_update_peer_port( > const osm_pkey_mgr_t * const p_mgr, > - const osm_port_t * const p_port ) > + const osm_port_t * const p_port, > + boolean_t enforce) > { > osm_physp_t *p, *peer; > osm_node_t *p_node; > @@ -326,18 +327,25 @@ osm_pkey_mgr_update_peer_port( > if ( !peer || !osm_physp_is_valid( peer ) ) > return; > p_node = osm_physp_get_node_ptr( peer ); > - if ( osm_node_get_type( p_node ) == IB_NODE_TYPE_CA ) > + if ( osm_node_get_type( p_node ) != IB_NODE_TYPE_SWITCH ) > return; > - else if ( osm_node_get_type( p_node ) == IB_NODE_TYPE_SWITCH ) { > - if (!(p_sw = osm_get_switch_by_guid( p_mgr->p_subn, > - osm_node_get_node_guid( p_node ))) || > - !(p_si = osm_switch_get_si_ptr( p_sw )) || > - !p_si->enforce_cap) > - return; > + > + p_sw = osm_get_switch_by_guid( p_mgr->p_subn, osm_node_get_node_guid( > p_node )); > + if (!p_sw || !(p_si = osm_switch_get_si_ptr( p_sw )) || > + !p_si->enforce_cap) > + return; > + > + if (osm_pkey_mgr_enforce_partition( p_mgr, peer, enforce ) != IB_SUCCESS) { > + osm_log( p_mgr->p_log, OSM_LOG_ERROR, > + "osm_pkey_mgr_update_peer_port: " > + "osm_pkey_mgr_enforce_partition() failed to update " > + "node 0x%016" PRIx64 " port %u\n", > + cl_ntoh64( osm_node_get_node_guid( p_node ) ), > + osm_physp_get_port_num( peer ) ); > } > > - if (p_mgr->p_subn->opt.no_partition_enforcement == TRUE) > - goto _enforce_port; > + if (enforce == FALSE) > + return; > > p_pkey_tbl = osm_physp_get_pkey_tbl( p ); > p_peer_pkey_tbl = osm_physp_get_pkey_tbl( peer ); > @@ -377,18 +385,6 @@ osm_pkey_mgr_update_peer_port( > cl_ntoh64( osm_node_get_node_guid( p_node ) ), > osm_physp_get_port_num( peer ) ); > } > - > - _enforce_port: > - if (osm_pkey_mgr_enforce_partition( p_mgr, peer, > - p_mgr->p_subn->opt.no_partition_enforcement == FALSE ) != > - IB_SUCCESS) { > - osm_log( p_mgr->p_log, OSM_LOG_ERROR, > - "osm_pkey_mgr_update_peer_port: " > - "osm_pkey_mgr_enforce_partition() failed to update " > - "node 0x%016" PRIx64 " port %u\n", > - cl_ntoh64( osm_node_get_node_guid( p_node ) ), > - osm_physp_get_port_num( peer ) ); > - } > } > > /********************************************************************** > @@ -484,7 +480,8 @@ osm_pkey_mgr_process( > if ( osm_node_get_type( osm_port_get_parent_node( p_port ) ) != > IB_NODE_TYPE_SWITCH ) > { > - osm_pkey_mgr_update_peer_port( p_mgr, p_port ); > + osm_pkey_mgr_update_peer_port( p_mgr, p_port, > + !p_mgr->p_subn->opt.no_partition_enforcement); > } > } > _______________________________________________ openib-general mailing list [email protected] http://openib.org/mailman/listinfo/openib-general To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general
