lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Message-ID: <1277199893.1875.690.camel@laptop> Date: Tue, 22 Jun 2010 11:44:53 +0200 From: Peter Zijlstra <peterz@...radead.org> To: Miles Lane <miles.lane@...il.com> Cc: paulmck@...ux.vnet.ibm.com, Vivek Goyal <vgoyal@...hat.com>, Eric Paris <eparis@...hat.com>, Lai Jiangshan <laijs@...fujitsu.com>, Ingo Molnar <mingo@...e.hu>, LKML <linux-kernel@...r.kernel.org>, nauman@...gle.com, eric.dumazet@...il.com, netdev@...r.kernel.org, Jens Axboe <jens.axboe@...cle.com>, Gui Jianfeng <guijianfeng@...fujitsu.com>, Li Zefan <lizf@...fujitsu.com>, Johannes Berg <johannes@...solutions.net>, Paul Menage <menage@...gle.com> Subject: [PATCH] sched: silence PROVE_RCU in sched_fork() Paul Menage, Li Zefan, any comments? --- Because cgroup_fork() is ran before sched_fork() [ from copy_process() ] and the child's pid is not yet visible the child is pinned to its cgroup. Therefore we can silence this warning. A nicer solution would be moving cgroup_fork() to right after dup_task_struct() and exclude PF_STARTING from task_subsys_state(). Signed-off-by: Peter Zijlstra <a.p.zijlstra@...llo.nl> --- kernel/sched.c | 9 +++++++++ 1 files changed, 9 insertions(+), 0 deletions(-) diff --git a/kernel/sched.c b/kernel/sched.c index b697606..2e79518 100644 --- a/kernel/sched.c +++ b/kernel/sched.c @@ -2561,7 +2561,16 @@ void sched_fork(struct task_struct *p, int clone_flags) if (p->sched_class->task_fork) p->sched_class->task_fork(p); + /* + * The child is not yet in the pid-hash so no cgroup attach races, + * and the cgroup is pinned to this child due to cgroup_fork() + * is ran before sched_fork(). + * + * Silence PROVE_RCU. + */ + rcu_read_lock(); set_task_cpu(p, cpu); + rcu_read_unlock(); #if defined(CONFIG_SCHEDSTATS) || defined(CONFIG_TASK_DELAY_ACCT) if (likely(sched_info_on())) -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@...r.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists