aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/sched/cputime.c
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/sched/cputime.c')
-rw-r--r--kernel/sched/cputime.c10
1 files changed, 2 insertions, 8 deletions
diff --git a/kernel/sched/cputime.c b/kernel/sched/cputime.c
index 72fdf06ef865..3e52836359ba 100644
--- a/kernel/sched/cputime.c
+++ b/kernel/sched/cputime.c
@@ -294,18 +294,12 @@ void thread_group_cputime(struct task_struct *tsk, struct task_cputime *times)
294 times->sum_exec_runtime = sig->sum_sched_runtime; 294 times->sum_exec_runtime = sig->sum_sched_runtime;
295 295
296 rcu_read_lock(); 296 rcu_read_lock();
297 /* make sure we can trust tsk->thread_group list */ 297 for_each_thread(tsk, t) {
298 if (!likely(pid_alive(tsk)))
299 goto out;
300
301 t = tsk;
302 do {
303 task_cputime(t, &utime, &stime); 298 task_cputime(t, &utime, &stime);
304 times->utime += utime; 299 times->utime += utime;
305 times->stime += stime; 300 times->stime += stime;
306 times->sum_exec_runtime += task_sched_runtime(t); 301 times->sum_exec_runtime += task_sched_runtime(t);
307 } while_each_thread(tsk, t); 302 }
308out:
309 rcu_read_unlock(); 303 rcu_read_unlock();
310} 304}
311 305