DAPL automatically calls rdma_disconnect() when a disconnect request is received. If the user also calls disconnect, that calls rdma_disconnect() as well, but the connection has already been disconnected by DAPL and is no longer valid. The result is that the user's call to rdma_disconnect() will fail. Do not display an error message if this occurs.
Locking could be added to prevent calling rdma_disconnect() multiple times, but since the librdmacm provides synchronization to trap this, we might as well take advantage of it. Signed-off-by: Sean Hefty <[email protected]> --- The print is annoying in that it shows up during normal execution when running the debug version of the library. This should be a fairly harmless change, but one that would be nice for winof 2.1. Index: ulp/dapl2/dapl/openib_cma/cm.c =================================================================== --- ulp/dapl2/dapl/openib_cma/cm.c (revision 2342) +++ ulp/dapl2/dapl/openib_cma/cm.c (working copy) @@ -644,11 +644,7 @@ return DAT_SUCCESS; /* no graceful half-pipe disconnect option */ - ret = rdma_disconnect(conn->cm_id); - if (ret) - dapl_dbg_log(DAPL_DBG_TYPE_ERR, - " disconnect: ID %p ret 0x%x\n", - ep_ptr->cm_handle, ret); + rdma_disconnect(conn->cm_id); /* * DAT event notification occurs from the callback
dapl-disc.diff
Description: Binary data
_______________________________________________ ofw mailing list [email protected] http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ofw
