Commit 8b46f880 authored by Paul E. McKenney's avatar Paul E. McKenney Committed by Ingo Molnar

rcu: Fix RCU lockdep splat on freezer_fork path

Add an RCU read-side critical section to suppress this false
positive.
Located-by: default avatarEric Paris <eparis@parisplace.org>
Signed-off-by: default avatarPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Acked-by: default avatarLi Zefan <lizf@cn.fujitsu.com>
Cc: laijs@cn.fujitsu.com
Cc: dipankar@in.ibm.com
Cc: mathieu.desnoyers@polymtl.ca
Cc: josh@joshtriplett.org
Cc: dvhltc@us.ibm.com
Cc: niv@us.ibm.com
Cc: peterz@infradead.org
Cc: rostedt@goodmis.org
Cc: Valdis.Kletnieks@vt.edu
Cc: dhowells@redhat.com
Cc: eric.dumazet@gmail.com
LKML-Reference: <1271880131-3951-2-git-send-email-paulmck@linux.vnet.ibm.com>
Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
parent 8b08ca52
...@@ -205,9 +205,12 @@ static void freezer_fork(struct cgroup_subsys *ss, struct task_struct *task) ...@@ -205,9 +205,12 @@ static void freezer_fork(struct cgroup_subsys *ss, struct task_struct *task)
* No lock is needed, since the task isn't on tasklist yet, * No lock is needed, since the task isn't on tasklist yet,
* so it can't be moved to another cgroup, which means the * so it can't be moved to another cgroup, which means the
* freezer won't be removed and will be valid during this * freezer won't be removed and will be valid during this
* function call. * function call. Nevertheless, apply RCU read-side critical
* section to suppress RCU lockdep false positives.
*/ */
rcu_read_lock();
freezer = task_freezer(task); freezer = task_freezer(task);
rcu_read_unlock();
/* /*
* The root cgroup is non-freezable, so we can skip the * The root cgroup is non-freezable, so we can skip the
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment