lkml.org 
[lkml]   [2020]   [Jun]   [17]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH AUTOSEL 5.4 205/266] of: Fix a refcounting bug in __of_attach_node_sysfs()
    Date
    From: Dan Carpenter <dan.carpenter@oracle.com>

    [ Upstream commit 8a325dd06f2358ea0888e4ff1c9ca4bc23bd53f3 ]

    The problem in this code is that if kobject_add() fails, then it should
    call of_node_put(np) to drop the reference count. I've actually moved
    the of_node_get(np) later in the function to avoid needing to do clean
    up.

    Fixes: 5b2c2f5a0ea3 ("of: overlay: add missing of_node_get() in __of_attach_node_sysfs")
    Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
    Signed-off-by: Rob Herring <robh@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/of/kobj.c | 3 +--
    1 file changed, 1 insertion(+), 2 deletions(-)

    diff --git a/drivers/of/kobj.c b/drivers/of/kobj.c
    index c72eef988041..a32e60b024b8 100644
    --- a/drivers/of/kobj.c
    +++ b/drivers/of/kobj.c
    @@ -134,8 +134,6 @@ int __of_attach_node_sysfs(struct device_node *np)
    if (!name)
    return -ENOMEM;

    - of_node_get(np);
    -
    rc = kobject_add(&np->kobj, parent, "%s", name);
    kfree(name);
    if (rc)
    @@ -144,6 +142,7 @@ int __of_attach_node_sysfs(struct device_node *np)
    for_each_property_of_node(np, pp)
    __of_add_property_sysfs(np, pp);

    + of_node_get(np);
    return 0;
    }

    --
    2.25.1
    \
     
     \ /
      Last update: 2020-06-18 04:27    [W:4.023 / U:0.244 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site