lkml.org 
[lkml]   [2021]   [Mar]   [1]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.11 343/775] RDMA/rtrs: Call kobject_put in the failure path
    Date
    From: Guoqing Jiang <guoqing.jiang@cloud.ionos.com>

    [ Upstream commit 424774c9f3fa100ef7d9cfb9ee211e2ba1cd5119 ]

    Per the comment of kobject_init_and_add, we need to free the memory
    by call kobject_put.

    Fixes: 215378b838df ("RDMA/rtrs: client: sysfs interface functions")
    Fixes: 91b11610af8d ("RDMA/rtrs: server: sysfs interface functions")
    Link: https://lore.kernel.org/r/20201217141915.56989-8-jinpu.wang@cloud.ionos.com
    Signed-off-by: Guoqing Jiang <guoqing.jiang@cloud.ionos.com>
    Reviewed-by: Md Haris Iqbal <haris.iqbal@cloud.ionos.com>
    Reviewed-by: Gioh Kim <gi-oh.kim@cloud.ionos.com>
    Signed-off-by: Jack Wang <jinpu.wang@cloud.ionos.com>
    Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/infiniband/ulp/rtrs/rtrs-clt-sysfs.c | 2 ++
    drivers/infiniband/ulp/rtrs/rtrs-srv-sysfs.c | 3 ++-
    2 files changed, 4 insertions(+), 1 deletion(-)

    diff --git a/drivers/infiniband/ulp/rtrs/rtrs-clt-sysfs.c b/drivers/infiniband/ulp/rtrs/rtrs-clt-sysfs.c
    index ba00f0de14caa..ad77659800cd2 100644
    --- a/drivers/infiniband/ulp/rtrs/rtrs-clt-sysfs.c
    +++ b/drivers/infiniband/ulp/rtrs/rtrs-clt-sysfs.c
    @@ -408,6 +408,7 @@ int rtrs_clt_create_sess_files(struct rtrs_clt_sess *sess)
    "%s", str);
    if (err) {
    pr_err("kobject_init_and_add: %d\n", err);
    + kobject_put(&sess->kobj);
    return err;
    }
    err = sysfs_create_group(&sess->kobj, &rtrs_clt_sess_attr_group);
    @@ -419,6 +420,7 @@ int rtrs_clt_create_sess_files(struct rtrs_clt_sess *sess)
    &sess->kobj, "stats");
    if (err) {
    pr_err("kobject_init_and_add: %d\n", err);
    + kobject_put(&sess->stats->kobj_stats);
    goto remove_group;
    }

    diff --git a/drivers/infiniband/ulp/rtrs/rtrs-srv-sysfs.c b/drivers/infiniband/ulp/rtrs/rtrs-srv-sysfs.c
    index cca3a0acbabc5..0a3886629cae8 100644
    --- a/drivers/infiniband/ulp/rtrs/rtrs-srv-sysfs.c
    +++ b/drivers/infiniband/ulp/rtrs/rtrs-srv-sysfs.c
    @@ -236,6 +236,7 @@ static int rtrs_srv_create_stats_files(struct rtrs_srv_sess *sess)
    &sess->kobj, "stats");
    if (err) {
    rtrs_err(s, "kobject_init_and_add(): %d\n", err);
    + kobject_put(&sess->stats->kobj_stats);
    return err;
    }
    err = sysfs_create_group(&sess->stats->kobj_stats,
    @@ -292,8 +293,8 @@ remove_group:
    sysfs_remove_group(&sess->kobj, &rtrs_srv_sess_attr_group);
    put_kobj:
    kobject_del(&sess->kobj);
    - kobject_put(&sess->kobj);
    destroy_root:
    + kobject_put(&sess->kobj);
    rtrs_srv_destroy_once_sysfs_root_folders(sess);

    return err;
    --
    2.27.0


    \
     
     \ /
      Last update: 2021-03-02 01:11    [W:2.886 / U:0.032 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site