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
