From: Arlin Davis Date: Thu, 8 Dec 2011 00:34:17 +0000 (-0800) Subject: common: RSP service points incorrectly freed during CR callback X-Git-Tag: dapl-2.0.35-1~23 X-Git-Url: https://openfabrics.org/gitweb/?a=commitdiff_plain;h=c5ff770c2ef572561f409181d2627d645334a9bf;p=~ardavis%2Fdapl.git common: RSP service points incorrectly freed during CR callback The RSP service point is being removed because of improper state/flag checking during CR callback. Add state check for DAPL_SP_STATE_RSP_LISTENING. Signed-off-by: Arlin Davis --- diff --git a/dapl/common/dapl_cr_callback.c b/dapl/common/dapl_cr_callback.c index c58444b..1f6dd6d 100644 --- a/dapl/common/dapl_cr_callback.c +++ b/dapl/common/dapl_cr_callback.c @@ -499,7 +499,8 @@ DAPL_EP *dapli_get_sp_ep(IN dp_ib_cm_handle_t ib_cm_handle, * up after the last CR is removed */ if (sp_ptr->listening != DAT_TRUE && sp_ptr->cr_list_count == 0 - && sp_ptr->state != DAPL_SP_STATE_FREE) { + && sp_ptr->state != DAPL_SP_STATE_FREE + && sp_ptr->state != DAPL_SP_STATE_RSP_LISTENING) { dapl_dbg_log(DAPL_DBG_TYPE_CM, "--> dapli_get_sp_ep! disconnect dump sp: %p \n", sp_ptr);