if (blk_mq_rq_state(rq) == MQ_RQ_COMPLETE)
                        break;
                set_current_state(TASK_UNINTERRUPTIBLE);
-               hrtimer_start_expires(&hs.timer, mode);
+               hrtimer_sleeper_start_expires(&hs, mode);
                if (hs.task)
                        io_schedule();
                hrtimer_cancel(&hs.timer);
 
                        break;
                }
                if (to) {
-                       hrtimer_start_expires(&to->timer, HRTIMER_MODE_ABS);
+                       hrtimer_sleeper_start_expires(to, HRTIMER_MODE_ABS);
                        if (likely(to->task))
                                freezable_schedule();
                        hrtimer_cancel(&to->timer);
 
 
        /* Arm the timer */
        if (timeout)
-               hrtimer_start_expires(&timeout->timer, HRTIMER_MODE_ABS);
+               hrtimer_sleeper_start_expires(timeout, HRTIMER_MODE_ABS);
 
        /*
         * If we have been removed from the hash list, then another task
        }
 
        if (unlikely(to))
-               hrtimer_start_expires(&to->timer, HRTIMER_MODE_ABS);
+               hrtimer_sleeper_start_expires(to, HRTIMER_MODE_ABS);
 
        ret = rt_mutex_wait_proxy_lock(&q.pi_state->pi_mutex, to, &rt_waiter);
 
 
        } else {
                do {
                        set_current_state(TASK_INTERRUPTIBLE);
-                       hrtimer_start_expires(&t.timer, HRTIMER_MODE_ABS);
+                       hrtimer_sleeper_start_expires(&t, HRTIMER_MODE_ABS);
 
                        if (likely(t.task))
                                schedule();