Running windows application verifiier for uDAPL validation
for all 3 providers. Cleanup memory lock leaks found
by verifier.

Signed-off-by: Arlin Davis <arlin.r.da...@intel.com>
---
 dapl/openib_cma/cm.c |    4 ++++
 dapl/openib_scm/cm.c |    2 ++
 dapl/openib_ucm/cm.c |    4 ++++
 3 files changed, 10 insertions(+), 0 deletions(-)

diff --git a/dapl/openib_cma/cm.c b/dapl/openib_cma/cm.c
index 9928239..cfa6ede 100644
--- a/dapl/openib_cma/cm.c
+++ b/dapl/openib_cma/cm.c
@@ -167,6 +167,7 @@ dp_ib_cm_handle_t dapls_ib_cm_create(DAPL_EP *ep)
 
        /* create CM_ID, bind to local device, create QP */
        if (rdma_create_id(g_cm_events, &cm_id, (void *)conn, RDMA_PS_TCP)) {
+               dapl_os_lock_destroy(&conn->lock);
                dapl_os_free(conn, sizeof(*conn));
                return NULL;
        }
@@ -221,6 +222,7 @@ void dapls_ib_cm_free(dp_ib_cm_handle_t conn, DAPL_EP *ep)
                rdma_destroy_id(conn->cm_id);
        }
 
+       dapl_os_lock_destroy(&conn->lock);
        dapl_os_free(conn, sizeof(*conn));
 }
 
@@ -686,6 +688,7 @@ dapls_ib_setup_conn_listener(IN DAPL_IA * ia_ptr,
        /* create CM_ID, bind to local device, create QP */
        if (rdma_create_id
            (g_cm_events, &conn->cm_id, (void *)conn, RDMA_PS_TCP)) {
+               dapl_os_lock_destroy(&conn->lock);
                dapl_os_free(conn, sizeof(*conn));
                return (dapl_convert_errno(errno, "setup_listener"));
        }
@@ -734,6 +737,7 @@ dapls_ib_setup_conn_listener(IN DAPL_IA * ia_ptr,
 
       bail:
        rdma_destroy_id(conn->cm_id);
+       dapl_os_lock_destroy(&conn->lock);
        dapl_os_free(conn, sizeof(*conn));
        return dat_status;
 }
diff --git a/dapl/openib_scm/cm.c b/dapl/openib_scm/cm.c
index db2821a..8e9be4d 100644
--- a/dapl/openib_scm/cm.c
+++ b/dapl/openib_scm/cm.c
@@ -317,6 +317,7 @@ void dapls_ib_cm_free(dp_ib_cm_handle_t cm_ptr, DAPL_EP *ep)
                        closesocket(cm_ptr->socket);
                }
                dapl_os_unlock(&cm_ptr->lock);
+               dapl_os_lock_destroy(&cm_ptr->lock);
                dapl_os_free(cm_ptr, sizeof(*cm_ptr));
                return;
        }
@@ -1761,6 +1762,7 @@ void cr_thread(void *arg)
                                        shutdown(cr->socket, SHUT_RDWR);
                                        closesocket(cr->socket);
                                }
+                               dapl_os_lock_destroy(&cr->lock);
                                dapl_os_free(cr, sizeof(*cr));
                                continue;
                        }
diff --git a/dapl/openib_ucm/cm.c b/dapl/openib_ucm/cm.c
index b5aba64..c0da589 100644
--- a/dapl/openib_ucm/cm.c
+++ b/dapl/openib_ucm/cm.c
@@ -728,6 +728,7 @@ void dapls_ib_cm_free(dp_ib_cm_handle_t cm, DAPL_EP *ep)
        /* cleanup, never made it to work queue */
        if (cm->state == DCM_INIT) {
                dapl_os_unlock(&cm->lock);
+               dapl_os_lock_destroy(&cm->lock);
                dapl_os_free(cm, sizeof(*cm));
                return;
        }
@@ -1701,6 +1702,7 @@ dapls_ib_remove_conn_listener(IN DAPL_IA *ia, IN DAPL_SP 
*sp)
                cm->state = DCM_DESTROY;
                dapl_os_unlock(&cm->lock);
                ucm_dequeue_listen(cm);
+               dapl_os_lock_destroy(&cm->lock);
                dapl_os_free(cm, sizeof(*cm));
        }
        return DAT_SUCCESS;
@@ -1981,6 +1983,7 @@ void cm_thread(void *arg)
                                dapl_llist_remove_entry(&hca->ib_trans.list,
                                                        (DAPL_LLIST_ENTRY 
*)&cm->entry);
                                dapl_os_unlock(&cm->lock);
+                               dapl_os_lock_destroy(&cm->lock);
                                dapl_os_free(cm, sizeof(*cm));
                                continue;
                        }
@@ -2052,6 +2055,7 @@ void cm_thread(void *arg)
                                        &hca->ib_trans.list,
                                        (DAPL_LLIST_ENTRY *)&cm->entry);
                                dapl_os_unlock(&cm->lock);
+                               dapl_os_lock_destroy(&cm->lock);
                                dapl_os_free(cm, sizeof(*cm));
                                continue;
                        }
-- 
1.5.2.5

--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to