[ofw] [PATCH] winverbs/ep: allow failed connection requests to be retried

Sean Hefty sean.hefty at intel.com
Fri Mar 5 14:03:18 PST 2010


Allow a user to retry a connection request if it fails.  Report a
'success' timeout value, rather than an error timeout, reset the
EP state, and allow the request to be retried from user space.

A 'success' timeout value is one where if(FAILED(status)) is false.

The change in the completion status allows us to remove a mapping
from STATUS_IO_TIMEOUT to ND_TIMEOUT in the user space winverbs ND
provider.  Instead STATUS_TIMEOUT is returned, which maps directly
to ND_TIMEOUT.  MS-MPI has issues dealing with an 'error' timeout
value being mapped to a 'success' timeout value.

Signed-off-by: Sean Hefty <sean.hefty at intel.com>
---
This patch should be added to the 2.2 release.  It passes all ND
logo tests, and Intel MPI IMB tests for SCM and CMA providers.

 trunk/core/winverbs/kernel/wv_ep.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/trunk/core/winverbs/kernel/wv_ep.c b/trunk/core/winverbs/kernel/wv_ep.c
index cb897d3..e35e6e8 100644
--- a/trunk/core/winverbs/kernel/wv_ep.c
+++ b/trunk/core/winverbs/kernel/wv_ep.c
@@ -504,8 +504,8 @@ static NTSTATUS WvEpIbCmHandler(iba_cm_id *pId, iba_cm_event *pEvent)
 	case iba_cm_req_error:
 		WdfObjectAcquireLock(ep->Queue);
 		if (ep->State == WvEpActiveConnect) {
-			ep->State = WvEpDisconnected;
-			WvCompleteRequests(ep->Queue, STATUS_IO_TIMEOUT);
+			ep->State = WvEpRouteResolved;
+			WvCompleteRequests(ep->Queue, STATUS_TIMEOUT);
 		}
 		WdfObjectReleaseLock(ep->Queue);
 		break;





More information about the ofw mailing list