[openib-general] [PATCH] osm: state manager return wrong signal

Hal Rosenstock halr at voltaire.com
Mon Dec 18 13:47:47 PST 2006


On Mon, 2006-12-18 at 15:15, eitan at mellanox.co.il wrote:
> From: Eitan Zahavi <eitan at sw053.yok.mtl.com>

See below comments.

> diff --git a/osm/opensm/osm_state_mgr.c b/osm/opensm/osm_state_mgr.c
> index 9eac038..94cc095 100644
> --- a/osm/opensm/osm_state_mgr.c
> +++ b/osm/opensm/osm_state_mgr.c
> @@ -1853,6 +1853,7 @@ osm_state_mgr_process(
>  {
>     ib_api_status_t status;
>     osm_remote_sm_t *p_remote_sm;
> +   osm_signal_t tmp_signal;
>  
>     CL_ASSERT( p_mgr );
>  
> @@ -2075,11 +2076,10 @@ osm_state_mgr_process(
>           case OSM_SIGNAL_CHANGE_DETECTED:
>              /*
>               * Nothing to do here.  One subnet change typcially
> -             * begets another....
> +             * begets another.... But needs to wait for all transactions

This was already done as part of your original osm_state_mgr.c patch.

>               */
>              signal = OSM_SIGNAL_NONE;

This was eliminated as part of your original osm_state_mgr.c patch.
Should it be there ? If so, this isn't indicated as a +.

-- Hal

>              break;
> -
>           case OSM_SIGNAL_NO_PENDING_TRANSACTIONS:
>              /*
>               * A change was detected on the subnet.
> @@ -2219,7 +2219,10 @@ osm_state_mgr_process(
>              signal = osm_pkey_mgr_process( p_mgr->p_subn->p_osm );
>  
>              /* the returned signal is always DONE */
> -            signal = osm_qos_setup(p_mgr->p_subn->p_osm);
> +            tmp_signal = osm_qos_setup(p_mgr->p_subn->p_osm);
> +
> +            if (tmp_signal == OSM_SIGNAL_DONE_PENDING)
> +               signal = OSM_SIGNAL_DONE_PENDING;
>  
>              /* try to restore SA DB (this should be before lid_mgr
>                 because we may want to disable clients reregistration





More information about the general mailing list