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

Hal Rosenstock hal.rosenstock at gmail.com
Thu Mar 5 06:37:30 PST 2009


On Thu, Mar 5, 2009 at 9:40 AM, Eli Dorfman (Voltaire)
<dorfman.eli at gmail.com> wrote:
> - Show quoted text -
> 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.

Should the check be if (!smport) rather than if (!port) there ?

>>> +               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?

A free number within the module's range (e.g. 1106 or 1103 look like
they would work).

> - Show quoted text -
>> -- 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