Skip to content

Commit

Permalink
posix-cpu-timers: Avoid timespec conversion in do_cpu_nanosleep()
Browse files Browse the repository at this point in the history
No point in converting the expiry time back and forth.

No point either to update the value in the caller supplied variable. mark
the rqtp argument const.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: Al Viro <viro@zeniv.linux.org.uk>
Cc: John Stultz <john.stultz@linaro.org>
Cc: Peter Zijlstra <peterz@infradead.org>
  • Loading branch information
Thomas Gleixner committed Jun 13, 2017
1 parent 2b2d028 commit 343d8fc
Showing 1 changed file with 5 additions and 4 deletions.
9 changes: 5 additions & 4 deletions kernel/time/posix-cpu-timers.c
Original file line number Diff line number Diff line change
Expand Up @@ -1227,10 +1227,11 @@ void set_process_cpu_timer(struct task_struct *tsk, unsigned int clock_idx,
}

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;

/*
Expand Down Expand Up @@ -1279,7 +1280,7 @@ static int do_cpu_nanosleep(const clockid_t which_clock, int flags,
/*
* 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) {
/*
Expand Down Expand Up @@ -1312,7 +1313,7 @@ static int do_cpu_nanosleep(const clockid_t which_clock, int flags,
* Report back to the user the time still remaining.
*/
restart = &current->restart_block;
restart->nanosleep.expires = timespec64_to_ns(rqtp);
restart->nanosleep.expires = expires;
if (restart->nanosleep.type != TT_NONE) {
struct timespec ts;

Expand Down

0 comments on commit 343d8fc

Please sign in to comment.