On 7/7/2013 4:56 PM, Sasha Khapyorsky wrote:
> Should not be matter to keep internal SM's PortInfo data for ports
> in any states.

What difference does it make ? Does this patch fix some operational
issue ? Is there any harm in not keeping the complete PortInfo when port
is DOWN ?

At worst, the current implementation is a minor efficiency improvement:
to only copy the 2 required to be valid fields rather than all 64 bytes
in PortInfo. Also, it seems safer to only save the guaranteed valid fields.

-- Hal

> Signed-off-by: Sasha Khapyorsky <[email protected]>
> 
> 
> diff --git a/opensm/osm_port.c b/opensm/osm_port.c
> index 6e73e66..d59d404 100644
> --- a/opensm/osm_port.c
> +++ b/opensm/osm_port.c
> @@ -669,25 +669,16 @@ void osm_physp_set_port_info(IN osm_physp_t * p_physp,
>       CL_ASSERT(p_pi);
>       CL_ASSERT(osm_physp_is_valid(p_physp));
>  
> -     if (ib_port_info_get_port_state(p_pi) == IB_LINK_DOWN) {
> -             /* If PortState is down, only copy PortState */
> -             /* and PortPhysicalState per C14-24-2.1 */
> -             ib_port_info_set_port_state(&p_physp->port_info, IB_LINK_DOWN);
> -             ib_port_info_set_port_phys_state
> -                 (ib_port_info_get_port_phys_state(p_pi),
> -                  &p_physp->port_info);
> -     } else {
> -             p_physp->port_info = *p_pi;
> -
> -             /* The MKey in p_pi can only be considered valid if it's
> -              * for a HCA/router or switch port 0, and it's either
> -              * non-zero or the MKeyProtect bits are also zero.
> -              */
> -             if ((osm_node_get_type(p_physp->p_node) !=
> -                  IB_NODE_TYPE_SWITCH || p_physp->port_num == 0) &&
> -                 (p_pi->m_key != 0 || ib_port_info_get_mpb(p_pi) == 0))
> -                     osm_db_guid2mkey_set(p_sm->p_subn->p_g2m,
> -                                          cl_ntoh64(p_physp->port_guid),
> -                                          cl_ntoh64(p_pi->m_key));
> -     }
> +     p_physp->port_info = *p_pi;
> +
> +     /* The MKey in p_pi can only be considered valid if it's
> +      * for a HCA/router or switch port 0, and it's either
> +      * non-zero or the MKeyProtect bits are also zero.
> +      */
> +     if ((osm_node_get_type(p_physp->p_node) != IB_NODE_TYPE_SWITCH ||
> +          p_physp->port_num == 0) &&
> +         (p_pi->m_key != 0 || ib_port_info_get_mpb(p_pi) == 0))
> +             osm_db_guid2mkey_set(p_sm->p_subn->p_g2m,
> +                                  cl_ntoh64(p_physp->port_guid),
> +                                  cl_ntoh64(p_pi->m_key));
>  }
> 

--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to