lkml.org 
[lkml]   [2010]   [Apr]   [30]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH tip/core/urgent 05/10] cgroup: Fix an RCU warning in alloc_css_id()
    Date
    From: Li Zefan <lizf@cn.fujitsu.com>

    With CONFIG_PROVE_RCU=y, a warning can be triggered:

    # mount -t cgroup -o memory xxx /mnt
    # mkdir /mnt/0

    ...
    kernel/cgroup.c:4442 invoked rcu_dereference_check() without protection!
    ...

    This is a false-positive. It's safe to directly access parent_css->id.

    Signed-off-by: Li Zefan <lizf@cn.fujitsu.com>
    Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
    ---
    kernel/cgroup.c | 4 ++--
    1 files changed, 2 insertions(+), 2 deletions(-)

    diff --git a/kernel/cgroup.c b/kernel/cgroup.c
    index 4ca928d..3a53c77 100644
    --- a/kernel/cgroup.c
    +++ b/kernel/cgroup.c
    @@ -4561,13 +4561,13 @@ static int alloc_css_id(struct cgroup_subsys *ss, struct cgroup *parent,
    {
    int subsys_id, i, depth = 0;
    struct cgroup_subsys_state *parent_css, *child_css;
    - struct css_id *child_id, *parent_id = NULL;
    + struct css_id *child_id, *parent_id;

    subsys_id = ss->subsys_id;
    parent_css = parent->subsys[subsys_id];
    child_css = child->subsys[subsys_id];
    - depth = css_depth(parent_css) + 1;
    parent_id = parent_css->id;
    + depth = parent_id->depth;

    child_id = get_new_cssid(ss, depth);
    if (IS_ERR(child_id))
    --
    1.7.0


    \
     
     \ /
      Last update: 2010-05-01 02:29    [W:0.024 / U:60.368 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site