From 0e2f8288fcd6a84e59cfa9b7c08539fb43c4bf2f Mon Sep 17 00:00:00 2001 From: Patrick Mccormick Date: Thu, 7 Feb 2013 13:04:28 -0800 Subject: [PATCH] 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 --- dapl/svc/mpxyd.c | 10 ++++++++++ 1 file changed, 10 insertions(+) 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); } -- 2.46.0