diff mbox

uDAPL v2 - common: seg fault in dapl_evd_wait with multi-thread application using CNO's

Message ID E3280858FA94444CA49D2BA02341C983619D3FDA@orsmsx506.amr.corp.intel.com (mailing list archive)
State Not Applicable, archived
Headers show

Commit Message

Arlin Davis Nov. 19, 2009, 12:22 a.m. UTC
None
diff mbox

Patch

diff --git a/dapl/common/dapl_evd_util.c b/dapl/common/dapl_evd_util.c
index 02909e9..cc0aa17 100644
--- a/dapl/common/dapl_evd_util.c
+++ b/dapl/common/dapl_evd_util.c
@@ -159,9 +159,11 @@  dapls_evd_internal_create(DAPL_IA * ia_ptr,
 	/*
 	 * If we are dealing with event streams besides a CQ event stream,
 	 * be conservative and set producer side locking.  Otherwise, no.
+	 * Note: CNO is not considered CQ event stream.
 	 */
 	evd_ptr->evd_producer_locking_needed =
-	    !(evd_flags & (DAT_EVD_DTO_FLAG | DAT_EVD_RMR_BIND_FLAG));
+	    (!(evd_flags & (DAT_EVD_DTO_FLAG | DAT_EVD_RMR_BIND_FLAG)) ||
+	     evd_ptr->cno_ptr);
 
 	/* Before we setup any callbacks, transition state to OPEN.  */
 	evd_ptr->evd_state = DAPL_EVD_STATE_OPEN;
@@ -646,8 +648,9 @@  dapli_evd_post_event(IN DAPL_EVD * evd_ptr, IN const DAT_EVENT * event_ptr)
 	DAT_RETURN dat_status;
 	DAPL_CNO *cno_to_trigger = NULL;
 
-	dapl_dbg_log(DAPL_DBG_TYPE_EVD, "%s: Called with event %s\n",
-		     __FUNCTION__, dapl_event_str(event_ptr->event_number));
+	dapl_dbg_log(DAPL_DBG_TYPE_EVD, "%s: %s evd %p state %d\n",
+		     __FUNCTION__, dapl_event_str(event_ptr->event_number), 
+		     evd_ptr, evd_ptr->evd_state);
 
 	dat_status = dapls_rbuf_add(&evd_ptr->pending_event_queue,
 				    (void *)event_ptr);