Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 30 May 2022 18:22:57 GMT
From:      Hans Petter Selasky <hselasky@FreeBSD.org>
To:        src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org
Subject:   git: c4a415505311 - main - ibcore: Fix missing ib_cm_destroy_id() in ib_cm_insert_listen()
Message-ID:  <202205301822.24UIMvRI075113@gitrepo.freebsd.org>

next in thread | raw e-mail | index | archive | help
The branch main has been updated by hselasky:

URL: https://cgit.FreeBSD.org/src/commit/?id=c4a415505311e30093b6d9ee0493427a66f2b0de

commit c4a415505311e30093b6d9ee0493427a66f2b0de
Author:     Hans Petter Selasky <hselasky@FreeBSD.org>
AuthorDate: 2022-05-30 18:19:33 +0000
Commit:     Hans Petter Selasky <hselasky@FreeBSD.org>
CommitDate: 2022-05-30 18:22:18 +0000

    ibcore: Fix missing ib_cm_destroy_id() in ib_cm_insert_listen()
    
    The algorithm pre-allocates a cm_id since allocation cannot be done while
    holding the cm.lock spinlock, however it doesn't free it on one error
    path, leading to a memory leak.
    
    Linux commit:
    c14dfddbd869bf0c2bafb7ef260c41d9cebbcfec
    
    PR:             264248
    MFC after:      1 week
    Sponsored by:   NVIDIA Networking
---
 sys/ofed/drivers/infiniband/core/ib_cm.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/sys/ofed/drivers/infiniband/core/ib_cm.c b/sys/ofed/drivers/infiniband/core/ib_cm.c
index 6d8a4e24db47..45f316252b69 100644
--- a/sys/ofed/drivers/infiniband/core/ib_cm.c
+++ b/sys/ofed/drivers/infiniband/core/ib_cm.c
@@ -1179,6 +1179,7 @@ struct ib_cm_id *ib_cm_insert_listen(struct ib_device *device,
 			/* Sharing an ib_cm_id with different handlers is not
 			 * supported */
 			spin_unlock_irqrestore(&cm.lock, flags);
+			ib_destroy_cm_id(cm_id);
 			return ERR_PTR(-EINVAL);
 		}
 		atomic_inc(&cm_id_priv->refcount);



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202205301822.24UIMvRI075113>