posix-timers: Use sighand lock instead of tasklist_lock for task clock sample
authorFrederic Weisbecker <fweisbec@gmail.com>
Fri, 11 Oct 2013 15:41:11 +0000 (17:41 +0200)
committerFrederic Weisbecker <fweisbec@gmail.com>
Mon, 9 Dec 2013 15:53:51 +0000 (16:53 +0100)
commit50875788a1d4a3f662a27ed13cd05282d835939a
tree254cb6e105b576170aac22c195289de7b1998749
parent33ab0fec33527e8b5ab124cff6aefd4746508e04
posix-timers: Use sighand lock instead of tasklist_lock for task clock sample

There is no need for the tasklist_lock just to take a process
wide clock sample.

All we need is to get a coherent sample that doesn't race with
exit() and exec():

* exit() may be concurrently reaping a task and flushing its time

* sighand is unstable under exit() and exec(), and the latter also
  result in group leader that can change

To protect against these, locking the target's sighand is enough.

Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Oleg Nesterov <oleg@redhat.com>
Cc: Kosaki Motohiro <kosaki.motohiro@jp.fujitsu.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
kernel/posix-cpu-timers.c