diff --git a/kernel/time/posix-cpu-timers.c b/kernel/time/posix-cpu-timers.c index 98dab3e4be08..b1c97664a730 100644 --- a/kernel/time/posix-cpu-timers.c +++ b/kernel/time/posix-cpu-timers.c @@ -130,23 +130,6 @@ static inline int task_cputime_zero(const struct task_cputime *cputime) return 0; } -static inline u64 prof_ticks(struct task_struct *p) -{ - u64 utime, stime; - - task_cputime(p, &utime, &stime); - - return utime + stime; -} -static inline u64 virt_ticks(struct task_struct *p) -{ - u64 utime, stime; - - task_cputime(p, &utime, &stime); - - return utime; -} - static int posix_cpu_clock_getres(const clockid_t which_clock, struct timespec64 *tp) { @@ -184,13 +167,18 @@ posix_cpu_clock_set(const clockid_t clock, const struct timespec64 *tp) */ static u64 cpu_clock_sample(const clockid_t clkid, struct task_struct *p) { + u64 utime, stime; + + if (clkid == CPUCLOCK_SCHED) + return task_sched_runtime(p); + + task_cputime(p, &utime, &stime); + switch (clkid) { case CPUCLOCK_PROF: - return prof_ticks(p); + return utime + stime; case CPUCLOCK_VIRT: - return virt_ticks(p); - case CPUCLOCK_SCHED: - return task_sched_runtime(p); + return utime; default: WARN_ON_ONCE(1); }