On Thu, Mar 5, 2009 at 7:59 AM, Eli Dorfman (Voltaire) <[email protected]> wrote: > fix local port smlid > > when opensm goes from master to standby due to handover its local > port smlid will be wrong (equal to its own lid). > the new master opensm will change smlid only after local sm > (previous master) is in standby and will not query its port again. > > Signed-off-by: Eli Dorfman <[email protected]> > --- > opensm/opensm/osm_req.c | 15 +++++++++++++++ > 1 files changed, 15 insertions(+), 0 deletions(-) > > diff --git a/opensm/opensm/osm_req.c b/opensm/opensm/osm_req.c > index 0865ce5..df138d7 100644 > --- a/opensm/opensm/osm_req.c > +++ b/opensm/opensm/osm_req.c > @@ -217,6 +217,7 @@ int osm_send_trap144(osm_sm_t *sm, ib_net16_t local) > ib_smp_t *smp; > ib_mad_notice_attr_t *ntc; > osm_port_t *port; > + osm_port_t *smport; > ib_port_info_t *pi; > > port = osm_get_port_by_guid(sm->p_subn, sm->p_subn->sm_port_guid); > @@ -229,6 +230,20 @@ int osm_send_trap144(osm_sm_t *sm, ib_net16_t local) > > pi = &port->p_physp->port_info; > > + smport = osm_get_port_by_guid(sm->p_subn, sm->master_sm_guid); > + if (!port) {
smport ? > + OSM_LOG(sm->p_log, OSM_LOG_ERROR, > + "ERR 1104: cannot find SM port by guid 0x%" PRIx64 > "\n", nit: 1104 is already used. -- Hal > + cl_ntoh64(sm->master_sm_guid)); > + return -1; > + } > + > + /* update local port's smlid - since we may have */ > + /* wrong value in local portinfo */ > + /* this may happen when we move to standby and master updates */ > + /* out smlid but we will not query it */ > + pi->master_sm_base_lid = > smport->p_physp->port_info.master_sm_base_lid; > + > /* don't bother with sending trap when SMA supports this */ > if (!local && > pi->capability_mask&(IB_PORT_CAP_HAS_TRAP|IB_PORT_CAP_HAS_CAP_NTC)) > -- > 1.5.5 > > _______________________________________________ > general mailing list > [email protected] > http://lists.openfabrics.org/cgi-bin/mailman/listinfo/general > > To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general > _______________________________________________ general mailing list [email protected] http://lists.openfabrics.org/cgi-bin/mailman/listinfo/general To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general
