From: Patrick Mccormick Date: Thu, 7 Feb 2013 21:04:28 +0000 (-0800) Subject: mpxyd: fix memory leak during smd proxy device close X-Git-Url: https://openfabrics.org/gitweb/?a=commitdiff_plain;h=0e2f8288fcd6a84e59cfa9b7c08539fb43c4bf2f;p=~ardavis%2Fdapl.git mpxyd: fix memory leak during smd proxy device close Need to cleanup the proxy buffer created during device open. unregister the proxy buffer with both scif and IB and free memory. Signed-off-by: Arlin Davis --- diff --git a/dapl/svc/mpxyd.c b/dapl/svc/mpxyd.c index 9ecf780..296d0e8 100644 --- a/dapl/svc/mpxyd.c +++ b/dapl/svc/mpxyd.c @@ -1539,6 +1539,16 @@ static void mcm_destroy_smd(mcm_scif_dev_t *smd) pthread_mutex_unlock(&smd->plock); mlog(1, " port space destroyed \n"); + /* unregister scif window, ib mr, and free m_buf*/ + if (smd->m_offset) + scif_unregister(smd->scif_tx_ep, smd->m_offset, smd->m_len); + + if (smd->m_mr) + ibv_dereg_mr(smd->m_mr); + + free (smd->m_buf); + mlog(1, " m_buf unregistered and freed \n"); + if (smd->ref_cnt) { mlog(0, " WARNING: ref_cnt not 0, = %d \n", smd->ref_cnt); }