diff options
Diffstat (limited to 'kernel/sched_stats.h')
| -rw-r--r-- | kernel/sched_stats.h | 27 |
1 files changed, 3 insertions, 24 deletions
diff --git a/kernel/sched_stats.h b/kernel/sched_stats.h index 32d2bd4061b0..25c2f962f6fc 100644 --- a/kernel/sched_stats.h +++ b/kernel/sched_stats.h | |||
| @@ -295,13 +295,7 @@ sched_info_switch(struct task_struct *prev, struct task_struct *next) | |||
| 295 | static inline void account_group_user_time(struct task_struct *tsk, | 295 | static inline void account_group_user_time(struct task_struct *tsk, |
| 296 | cputime_t cputime) | 296 | cputime_t cputime) |
| 297 | { | 297 | { |
| 298 | struct thread_group_cputimer *cputimer; | 298 | struct thread_group_cputimer *cputimer = &tsk->signal->cputimer; |
| 299 | |||
| 300 | /* tsk == current, ensure it is safe to use ->signal */ | ||
| 301 | if (unlikely(tsk->exit_state)) | ||
| 302 | return; | ||
| 303 | |||
| 304 | cputimer = &tsk->signal->cputimer; | ||
| 305 | 299 | ||
| 306 | if (!cputimer->running) | 300 | if (!cputimer->running) |
| 307 | return; | 301 | return; |
| @@ -325,13 +319,7 @@ static inline void account_group_user_time(struct task_struct *tsk, | |||
| 325 | static inline void account_group_system_time(struct task_struct *tsk, | 319 | static inline void account_group_system_time(struct task_struct *tsk, |
| 326 | cputime_t cputime) | 320 | cputime_t cputime) |
| 327 | { | 321 | { |
| 328 | struct thread_group_cputimer *cputimer; | 322 | struct thread_group_cputimer *cputimer = &tsk->signal->cputimer; |
| 329 | |||
| 330 | /* tsk == current, ensure it is safe to use ->signal */ | ||
| 331 | if (unlikely(tsk->exit_state)) | ||
| 332 | return; | ||
| 333 | |||
| 334 | cputimer = &tsk->signal->cputimer; | ||
| 335 | 323 | ||
| 336 | if (!cputimer->running) | 324 | if (!cputimer->running) |
| 337 | return; | 325 | return; |
| @@ -355,16 +343,7 @@ static inline void account_group_system_time(struct task_struct *tsk, | |||
| 355 | static inline void account_group_exec_runtime(struct task_struct *tsk, | 343 | static inline void account_group_exec_runtime(struct task_struct *tsk, |
| 356 | unsigned long long ns) | 344 | unsigned long long ns) |
| 357 | { | 345 | { |
| 358 | struct thread_group_cputimer *cputimer; | 346 | struct thread_group_cputimer *cputimer = &tsk->signal->cputimer; |
| 359 | struct signal_struct *sig; | ||
| 360 | |||
| 361 | sig = tsk->signal; | ||
| 362 | /* see __exit_signal()->task_rq_unlock_wait() */ | ||
| 363 | barrier(); | ||
| 364 | if (unlikely(!sig)) | ||
| 365 | return; | ||
| 366 | |||
| 367 | cputimer = &sig->cputimer; | ||
| 368 | 347 | ||
| 369 | if (!cputimer->running) | 348 | if (!cputimer->running) |
| 370 | return; | 349 | return; |
