timers: fix itimer/many thread hang, cleanups
Ingo Molnar [Sun, 14 Sep 2008 15:11:46 +0000 (17:11 +0200)]
Signed-off-by: Ingo Molnar <mingo@elte.hu>

include/linux/sched.h
kernel/posix-cpu-timers.c

index ed355f0..7ce8d4e 100644 (file)
@@ -430,7 +430,7 @@ struct pacct_struct {
  * @utime:             time spent in user mode, in &cputime_t units
  * @stime:             time spent in kernel mode, in &cputime_t units
  * @sum_exec_runtime:  total time spent on the CPU, in nanoseconds
- * 
+ *
  * This structure groups together three kinds of CPU time that are
  * tracked for threads and thread groups.  Most things considering
  * CPU time want to group these counts together and treat all three
index dba1c33..9a7ea04 100644 (file)
@@ -94,7 +94,7 @@ void update_rlimit_cpu(unsigned long rlim_new)
 
        cputime = secs_to_cputime(rlim_new);
        if (cputime_eq(current->signal->it_prof_expires, cputime_zero) ||
-            cputime_lt(current->signal->it_prof_expires, cputime)) {
+           cputime_lt(current->signal->it_prof_expires, cputime)) {
                spin_lock_irq(&current->sighand->siglock);
                set_process_cpu_timer(current, CPUCLOCK_PROF, &cputime, NULL);
                spin_unlock_irq(&current->sighand->siglock);
@@ -1372,9 +1372,9 @@ void run_posix_cpu_timers(struct task_struct *tsk)
         * tsk->signal is non-NULL; this probably can't happen but cover the
         * possibility anyway.
         */
-       if (unlikely(!sig) || !fastpath_timer_check(tsk, sig)) {
+       if (unlikely(!sig) || !fastpath_timer_check(tsk, sig))
                return;
-       }
+
        sighand = lock_task_sighand(tsk, &flags);
        if (likely(sighand)) {
                /*