lkml.org 
[lkml]   [2020]   [Jun]   [23]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.7 257/477] IB/cma: Fix ports memory leak in cma_configfs
    Date
    From: Maor Gottlieb <maorg@mellanox.com>

    [ Upstream commit 63a3345c2d42a9b29e1ce2d3a4043689b3995cea ]

    The allocated ports structure in never freed. The free function should be
    called by release_cma_ports_group, but the group is never released since
    we don't remove its default group.

    Remove default groups when device group is deleted.

    Fixes: 045959db65c6 ("IB/cma: Add configfs for rdma_cm")
    Link: https://lore.kernel.org/r/20200521072650.567908-1-leon@kernel.org
    Signed-off-by: Maor Gottlieb <maorg@mellanox.com>
    Signed-off-by: Leon Romanovsky <leonro@mellanox.com>
    Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/infiniband/core/cma_configfs.c | 13 +++++++++++++
    1 file changed, 13 insertions(+)

    diff --git a/drivers/infiniband/core/cma_configfs.c b/drivers/infiniband/core/cma_configfs.c
    index c672a4978bfde..3c1e2ca564fea 100644
    --- a/drivers/infiniband/core/cma_configfs.c
    +++ b/drivers/infiniband/core/cma_configfs.c
    @@ -322,8 +322,21 @@ fail:
    return ERR_PTR(err);
    }

    +static void drop_cma_dev(struct config_group *cgroup, struct config_item *item)
    +{
    + struct config_group *group =
    + container_of(item, struct config_group, cg_item);
    + struct cma_dev_group *cma_dev_group =
    + container_of(group, struct cma_dev_group, device_group);
    +
    + configfs_remove_default_groups(&cma_dev_group->ports_group);
    + configfs_remove_default_groups(&cma_dev_group->device_group);
    + config_item_put(item);
    +}
    +
    static struct configfs_group_operations cma_subsys_group_ops = {
    .make_group = make_cma_dev,
    + .drop_item = drop_cma_dev,
    };

    static const struct config_item_type cma_subsys_type = {
    --
    2.25.1


    \
     
     \ /
      Last update: 2020-06-23 22:12    [W:3.134 / U:0.416 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site