*/
 static void posix_cpu_timer_rearm(struct k_itimer *timer)
 {
+       clockid_t clkid = CPUCLOCK_WHICH(timer->it_clock);
        struct task_struct *p = timer->it.cpu.task;
        struct sighand_struct *sighand;
        unsigned long flags;
         * Fetch the current sample and update the timer's expiry time.
         */
        if (CPUCLOCK_PERTHREAD(timer->it_clock)) {
-               cpu_clock_sample(timer->it_clock, p, &now);
+               cpu_clock_sample(clkid, p, &now);
                bump_cpu_timer(timer, now);
                if (unlikely(p->exit_state))
                        return;
                        /* If the process is dying, no need to rearm */
                        goto unlock;
                }
-               cpu_clock_sample_group(timer->it_clock, p, &now, true);
+               cpu_clock_sample_group(clkid, p, &now, true);
                bump_cpu_timer(timer, now);
                /* Leave the sighand locked for the call below.  */
        }