From: U-AMR\MSHEFTY Date: Mon, 7 Dec 2009 22:55:21 +0000 (-0800) Subject: refresh (create temporary patch) X-Git-Url: https://openfabrics.org/gitweb/?a=commitdiff_plain;h=403523de5e975e713ee8f79c9e21ad604274e933;p=~shefty%2Frdma-win.git refresh (create temporary patch) --- diff --git a/meta b/meta index a0e9f433..c8ce30b4 100644 --- a/meta +++ b/meta @@ -1,8 +1,9 @@ Version: 1 -Previous: 39abaeebf814a447e20a6a0c1b85f784d0ede1d9 -Head: b396590d184989f88f718c98efb45db39bfd8d4e +Previous: adafc5588887399e53d70c7a81da2ccc3c9b9c87 +Head: c4996e3dc8ae47af9087d6f1e01f742a2d23320e Applied: epdisc: 66cc200ece77ae6e35f97d834367a58a84c710cd debug: b396590d184989f88f718c98efb45db39bfd8d4e + refresh-temp: c4996e3dc8ae47af9087d6f1e01f742a2d23320e Unapplied: Hidden: diff --git a/patches/refresh-temp b/patches/refresh-temp new file mode 100644 index 00000000..5fa2940a --- /dev/null +++ b/patches/refresh-temp @@ -0,0 +1,77 @@ +Bottom: 3b5e1a76ae1d8ad2397f01e61749083ee7a6dfa0 +Top: 0c89e024c4bfe8ad32fa2a3126a05065e8804f95 +Author: U-AMR\MSHEFTY +Date: 2009-12-07 14:55:18 -0800 + +Refresh of debug + +--- + +diff --git a/trunk/core/al/kernel/al_cm.c b/trunk/core/al/kernel/al_cm.c +index 673e9bd..a571624 100644 +--- a/trunk/core/al/kernel/al_cm.c ++++ b/trunk/core/al/kernel/al_cm.c +@@ -37,7 +37,8 @@ + typedef struct _iba_cm_id_priv + { + iba_cm_id id; +- KEVENT destroy_event; ++ KEVENT destroy_event; ++int destroyed; + + } iba_cm_id_priv; + +@@ -55,6 +56,7 @@ cm_alloc_id(NTSTATUS (*callback)(iba_cm_id *p_id, iba_cm_event *p_event), + KeInitializeEvent(&id->destroy_event, NotificationEvent, FALSE); + id->id.callback = callback; + id->id.context = context; ++id->destroyed = 0; + return &id->id; + } + +@@ -68,6 +70,12 @@ static void + cm_destroy_handler(void *context) + { + iba_cm_id_priv *id = context; ++if (id->destroyed) { ++ DbgPrintEx(DPFLTR_IHVDRIVER_ID, 0, "cm_destroy_handler cid 0x%x already gave up\n", ++ id->id.cid); ++ cm_free_id(&id->id); ++} ++ + KeSetEvent(&id->destroy_event, 0, FALSE); + } + +@@ -142,13 +150,14 @@ NTSTATUS status; + + id = CONTAINING_RECORD(p_id, iba_cm_id_priv, id); + kal_cep_destroy(gh_al, p_id->cid, STATUS_SUCCESS); +-timeout.QuadPart = -10 * 1000000 * 10; ++timeout.QuadPart = -20 * 1000000 * 10; + status = + KeWaitForSingleObject(&id->destroy_event, Executive, KernelMode, FALSE, &timeout); ++id->destroyed = 1; + if (status != STATUS_SUCCESS) +- DbgPrintEx(DPFLTR_IHVDRIVER_ID, 0, "cm_destroy_id 0x%x cid 0x%x\n", ++ DbgPrintEx(DPFLTR_IHVDRIVER_ID, 0, "cm_destroy_id wait error 0x%x cid 0x%x\n", + status, p_id->cid); +- ++else + cm_free_id(p_id); + } + +diff --git a/trunk/core/al/kernel/al_cm_cep.c b/trunk/core/al/kernel/al_cm_cep.c +index 755371e..c52cc71 100644 +--- a/trunk/core/al/kernel/al_cm_cep.c ++++ b/trunk/core/al/kernel/al_cm_cep.c +@@ -4199,8 +4199,8 @@ signalled = p_cep->signalled; + KeReleaseInStackQueuedSpinLock( &hdl ); + + if (pfn_destroy_cb && ref_cnt) +- DbgPrintEx(DPFLTR_IHVDRIVER_ID, 0, "kal_cep_destroy %p 0x%x ref 0x%x signal %d\n", +- p_cep, cid, ref_cnt, signalled); ++ DbgPrintEx(DPFLTR_IHVDRIVER_ID, 0, "kal_cep_destroy cid 0x%x retries %d timeout 0x%x ref 0x%x signal %d\n", ++ cid, p_cep->max_cm_retries, p_cep->retry_timeout, ref_cnt, signalled); + + if( !ref_cnt && pfn_destroy_cb ) + pfn_destroy_cb( context );