[openib-general] [PATCH] [MINOR] OpenSM/osm_sm_mad_ctrl.c: Properly handle status based on whether direct routed or LID routed SMP

Eitan Zahavi eitan at mellanox.co.il
Thu Aug 17 00:19:29 PDT 2006


Looks good.

EZ

Hal Rosenstock wrote:
> OpenSM/osm_sm_mad_ctrl.c: Properly handle status based on whether direct
> routed or LID routed SMP
> 
> Signed-off-by: Hal Rosenstock <halr at voltaire.com>
> 
> Index: opensm/osm_sm_mad_ctrl.c
> ===================================================================
> --- opensm/osm_sm_mad_ctrl.c	(revision 8934)
> +++ opensm/osm_sm_mad_ctrl.c	(working copy)
> @@ -34,7 +34,6 @@
>   * $Id$
>   */
>  
> -
>  /*
>   * Abstract:
>   *    Implementation of osm_sm_mad_ctrl_t.
> @@ -253,12 +252,15 @@ __osm_sm_mad_ctrl_process_get_resp(
>  
>    p_smp = osm_madw_get_smp_ptr( p_madw );
>  
> -  if( !ib_smp_is_d( p_smp ) )
> +  if( p_smp->mgmt_class == IB_MCLASS_SUBN_DIR )
>    {
> -    osm_log( p_ctrl->p_log, OSM_LOG_ERROR,
> -             "__osm_sm_mad_ctrl_process_get_resp: ERR 3102: "
> -             "'D' bit not set in returned SMP\n" );
> -    osm_dump_dr_smp( p_ctrl->p_log, p_smp, OSM_LOG_ERROR );
> +    if( !ib_smp_is_d( p_smp ) )
> +    {
> +      osm_log( p_ctrl->p_log, OSM_LOG_ERROR,
> +               "__osm_sm_mad_ctrl_process_get_resp: ERR 3102: "
> +               "'D' bit not set in returned SMP\n" );
> +      osm_dump_dr_smp( p_ctrl->p_log, p_smp, OSM_LOG_ERROR );
> +    }
>    }
>  
>    p_old_madw = (osm_madw_t*)transaction_context;
> @@ -667,6 +669,7 @@ __osm_sm_mad_ctrl_rcv_callback(
>  {
>    osm_sm_mad_ctrl_t* p_ctrl = (osm_sm_mad_ctrl_t*)bind_context;
>    ib_smp_t* p_smp;
> +  ib_net16_t status;
>  
>    OSM_LOG_ENTER( p_ctrl->p_log, __osm_sm_mad_ctrl_rcv_callback );
>  
> @@ -717,11 +720,20 @@ __osm_sm_mad_ctrl_rcv_callback(
>    if( osm_log_is_active( p_ctrl->p_log, OSM_LOG_FRAMES ) )
>      osm_dump_dr_smp( p_ctrl->p_log, p_smp, OSM_LOG_FRAMES );
>  
> -  if( ib_smp_get_status( p_smp ) != 0 )
> +  if( p_smp->mgmt_class == IB_MCLASS_SUBN_DIR )
> +  {
> +    status = ib_smp_get_status( p_smp );
> +  }
> +  else
> +  {
> +    status = p_smp->status;
> +  }
> +
> +  if( status != 0 )
>    {
>      osm_log( p_ctrl->p_log, OSM_LOG_ERROR,
>               "__osm_sm_mad_ctrl_rcv_callback: ERR 3111: "
> -             "Error status = 0x%X\n", ib_smp_get_status( p_smp ) );
> +             "Error status = 0x%X\n", status );
>      osm_dump_dr_smp( p_ctrl->p_log, p_smp, OSM_LOG_ERROR );
>    }
>  
> 
> 





More information about the general mailing list