sched: Use rcu in sched_get_rr_param()
authorThomas Gleixner <tglx@linutronix.de>
Wed, 9 Dec 2009 10:15:11 +0000 (10:15 +0000)
committerGreg Kroah-Hartman <gregkh@suse.de>
Mon, 20 Sep 2010 20:18:00 +0000 (13:18 -0700)
commit62d4f155288b1c3524a6493341bc80d98dce11c5
tree6336720c424cf67e067b82b96b53a930ccd00cb1
parentb507f4cadeaf2fb3218d84f7f853535518103f50
sched: Use rcu in sched_get_rr_param()

commit 1a551ae715825bb2a2107a2dd68de024a1fa4e32 upstream

read_lock(&tasklist_lock) does not protect
sys_sched_get_rr_param() against a concurrent update of the
policy or scheduler parameters as do_sched_scheduler() does not
take the tasklist_lock.

The access to task->sched_class->get_rr_interval is protected by
task_rq_lock(task).

Use rcu_read_lock() to protect find_task_by_vpid() and prevent
the task struct from going away.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: Peter Zijlstra <peterz@infradead.org>
LKML-Reference: <20091209100706.862897167@linutronix.de>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Mike Galbraith <efault@gmx.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
kernel/sched.c