]> git.openfabrics.org - ~ardavis/dapl.git/commitdiff
common: RSP service points incorrectly freed during CR callback
authorArlin Davis <arlin.r.davis@intel.com>
Thu, 8 Dec 2011 00:34:17 +0000 (16:34 -0800)
committerArlin Davis <arlin.r.davis@intel.com>
Thu, 8 Dec 2011 00:34:17 +0000 (16:34 -0800)
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 <arlin.r.davis@intel.com>
dapl/common/dapl_cr_callback.c

index c58444be7e83fe1171e4236332774d26200df5f2..1f6dd6d6dfe718c8ff7a40715d72e46aac93e25e 100644 (file)
@@ -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);