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 <[email protected]>
---
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;


_______________________________________________
ofw mailing list
[email protected]
http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ofw

Reply via email to