[openib-general] Re: [PATCH 1.0] uDAPL fix for invalid disconnect state

James Lentini jlentini at netapp.com
Wed Mar 8 06:17:48 PST 2006


This was an old hack. Thanks for catching it.

Applied in revision 5684.

On Mon, 6 Mar 2006, Davis, Arlin R wrote:

> James,
> 
> This small patch fixes another issue with scale-out MPI testing. Please
> review this patch since you understand the history around NO_EP_STATE
> better then me. Apparently there is some NO_EP_STATE hack in the common
> code that is provided to protect against race conditions but I not clear
> on its usage model. This unknown state is causing the
> dat_ep_disconnect() to incorrectly fail with invalid state instead of
> processing in the proper DAT_EP_STATE_COMPLETION_PENDING state. 
> 
> Thanks,
> 
> -arlin 
> 
> Signed-off by: Arlin Davis <ardavis at ichips.intel.com>
> 
> Index: dapl/dapl/common/dapl_cr_callback.c
> ===================================================================
> --- dapl/dapl/common/dapl_cr_callback.c	(revision 5642)
> +++ dapl/dapl/common/dapl_cr_callback.c	(working copy)
> @@ -532,18 +532,10 @@ dapli_get_sp_ep (
>      {
>  	/* Remove the CR from the queue */
>  	dapl_sp_remove_cr (sp_ptr, cr_ptr);
> -	/*
> -	 * Last event, time to clean up and dispose of the resource.
> -	 * Put the EP in a state that it can't get hurt, avoiding
> -	 * race conditions between now and when it gets disconnected,
> -	 * i.e. an app invoking ep_disconnect before the callback
> -	 * code above finishes.
> -	 */
> -#define NO_EP_STATE	111		/* larger than any ep state */
> +
>  	if (ep_ptr != NULL)
>  	{
>  	    ep_ptr->cr_ptr = NULL;
> -	    ep_ptr->param.ep_state = NO_EP_STATE;
>  	}
>  
>  	/*
> 
> 
> 



More information about the general mailing list