***SPAM*** Re: [ofa-general] ***SPAM*** [PATCH] fix local port smlid

Eli Dorfman (Voltaire) dorfman.eli at gmail.com
Thu Mar 5 06:40:03 PST 2009


Hal Rosenstock wrote:
> On Thu, Mar 5, 2009 at 7:59 AM, Eli Dorfman (Voltaire)
> <dorfman.eli at gmail.com> 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 <elid at voltaire.com>
>> ---
>>  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 ?
>

meaning master sm port.
 
>> +               OSM_LOG(sm->p_log, OSM_LOG_ERROR,
>> +                       "ERR 1104: cannot find SM port by guid 0x%" PRIx64 "\n",
> 
> nit: 1104 is already used.
> 
should i just pick a free number or there is some rules about error numbers?

> -- 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
>> general at lists.openfabrics.org
>> http://lists.openfabrics.org/cgi-bin/mailman/listinfo/general
>>
>> To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general
>>




More information about the general mailing list