]> git.baikalelectronics.ru Git - kernel.git/commit
posix-cpu-timers: avoid "task->signal != NULL" checks
authorOleg Nesterov <oleg@redhat.com>
Wed, 26 May 2010 21:43:13 +0000 (14:43 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Thu, 27 May 2010 16:12:46 +0000 (09:12 -0700)
commit2bfa3256dbb84e35aafe7626d9af4bb36a8e8d2f
treea763bd24dac66b8d287304bd1cabab859ddf9ae1
parent16c99c2d286ef6ccdf7b86e6a8567d32bdea03e1
posix-cpu-timers: avoid "task->signal != NULL" checks

Preparation to make task->signal immutable, no functional changes.

posix-cpu-timers.c checks task->signal != NULL to ensure this task is
alive and didn't pass __exit_signal().  This is correct but we are going
to change the lifetime rules for ->signal and never reset this pointer.

Change the code to check ->sighand instead, it doesn't matter which
pointer we check under tasklist, they both are cleared simultaneously.

As Roland pointed out, some of these changes are not strictly needed and
probably it makes sense to revert them later, when ->signal will be pinned
to task_struct.  But this patch tries to ensure the subsequent changes in
fork/exit can't make any visible impact on posix cpu timers.

Signed-off-by: Oleg Nesterov <oleg@redhat.com>
Cc: Fenghua Yu <fenghua.yu@intel.com>
Acked-by: Roland McGrath <roland@redhat.com>
Cc: Stanislaw Gruszka <sgruszka@redhat.com>
Cc: Tony Luck <tony.luck@intel.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
kernel/posix-cpu-timers.c