From: Oleg Nesterov Date: Thu, 15 Jun 2006 16:12:02 +0000 (+0400) Subject: [PATCH] arm_timer: remove a racy and obsolete PF_EXITING check X-Git-Tag: firefly_0821_release~35499 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=f53ae1dc3429529a58aa538e0a860d713c7079c3;p=firefly-linux-kernel-4.4.55.git [PATCH] arm_timer: remove a racy and obsolete PF_EXITING check arm_timer() checks PF_EXITING to prevent BUG_ON(->exit_state) in run_posix_cpu_timers(). However, for some reason it does so only for CPUCLOCK_PERTHREAD case (which is imho wrong). Also, this check is not reliable, PF_EXITING could be set on another cpu without any locks/barriers just after the check, so it can't prevent from attaching the timer to the exiting task. The previous patch makes this check unneeded. Signed-off-by: Oleg Nesterov Signed-off-by: Linus Torvalds --- diff --git a/kernel/posix-cpu-timers.c b/kernel/posix-cpu-timers.c index 4882bf1e094a..d38d9ec3276c 100644 --- a/kernel/posix-cpu-timers.c +++ b/kernel/posix-cpu-timers.c @@ -555,9 +555,6 @@ static void arm_timer(struct k_itimer *timer, union cpu_time_count now) struct cpu_timer_list *next; unsigned long i; - if (CPUCLOCK_PERTHREAD(timer->it_clock) && (p->flags & PF_EXITING)) - return; - head = (CPUCLOCK_PERTHREAD(timer->it_clock) ? p->cpu_timers : p->signal->cpu_timers); head += CPUCLOCK_WHICH(timer->it_clock);