posix-cpu-timers: Use clock ID in posix_cpu_timer_get()
authorThomas Gleixner <tglx@linutronix.de>
Wed, 21 Aug 2019 19:08:57 +0000 (21:08 +0200)
committerThomas Gleixner <tglx@linutronix.de>
Wed, 28 Aug 2019 09:50:29 +0000 (11:50 +0200)
Extract the clock ID (PROF/VIRT/SCHED) from the clock selector and use it
as argument to the sample functions. That allows to simplify them once all
callers are fixed.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Reviewed-by: Frederic Weisbecker <frederic@kernel.org>
Link: https://lkml.kernel.org/r/20190821192920.155487201@linutronix.de
kernel/time/posix-cpu-timers.c

index 12561f8ef378f7e51a094f68457e4d7a9baca818..8e4ce8ade88c2f37e95e2a542262998217cd4a06 100644 (file)
@@ -699,6 +699,7 @@ static int posix_cpu_timer_set(struct k_itimer *timer, int timer_flags,
 
 static void posix_cpu_timer_get(struct k_itimer *timer, struct itimerspec64 *itp)
 {
+       clockid_t clkid = CPUCLOCK_WHICH(timer->it_clock);
        struct task_struct *p = timer->it.cpu.task;
        u64 now;
 
@@ -717,7 +718,7 @@ static void posix_cpu_timer_get(struct k_itimer *timer, struct itimerspec64 *itp
         * Sample the clock to take the difference with the expiry time.
         */
        if (CPUCLOCK_PERTHREAD(timer->it_clock)) {
-               cpu_clock_sample(timer->it_clock, p, &now);
+               cpu_clock_sample(clkid, p, &now);
        } else {
                struct sighand_struct *sighand;
                unsigned long flags;
@@ -737,7 +738,7 @@ static void posix_cpu_timer_get(struct k_itimer *timer, struct itimerspec64 *itp
                        timer->it.cpu.expires = 0;
                        return;
                } else {
-                       cpu_clock_sample_group(timer->it_clock, p, &now, false);
+                       cpu_clock_sample_group(clkid, p, &now, false);
                        unlock_task_sighand(p, &flags);
                }
        }