}
 
 static int do_cpu_nanosleep(const clockid_t which_clock, int flags,
-                           struct timespec64 *rqtp)
+                           const struct timespec64 *rqtp)
 {
-       struct k_itimer timer;
        struct itimerspec64 it;
+       struct k_itimer timer;
+       u64 expires;
        int error;
 
        /*
                /*
                 * We were interrupted by a signal.
                 */
-               *rqtp = ns_to_timespec64(timer.it.cpu.expires);
+               expires = timer.it.cpu.expires;
                error = posix_cpu_timer_set(&timer, 0, &zero_it, &it);
                if (!error) {
                        /*
                 * Report back to the user the time still remaining.
                 */
                restart = ¤t->restart_block;
-               restart->nanosleep.expires = timespec64_to_ns(rqtp);
+               restart->nanosleep.expires = expires;
                if (restart->nanosleep.type != TT_NONE) {
                        struct timespec ts;