posix-timers: Store rmtp into restart_block in sys_clock_nanosleep()

... instead of doing that in every ->nsleep() instance

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: John Stultz <john.stultz@linaro.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Link: http://lkml.kernel.org/r/20170607084241.28657-5-viro@ZenIV.linux.org.uk
This commit is contained in:
Al Viro 2017-06-07 09:42:30 +01:00 committed by Thomas Gleixner
parent a7602681fc
commit 99e6c0e6ec
4 changed files with 10 additions and 22 deletions

View file

@ -1328,16 +1328,11 @@ static int do_cpu_nanosleep(const clockid_t which_clock, int flags,
static long posix_cpu_nsleep_restart(struct restart_block *restart_block);
static int posix_cpu_nsleep(const clockid_t which_clock, int flags,
struct timespec64 *rqtp, struct timespec __user *rmtp)
struct timespec64 *rqtp)
{
struct restart_block *restart_block = &current->restart_block;
int error;
if (flags & TIMER_ABSTIME)
rmtp = NULL;
restart_block->nanosleep.rmtp = rmtp;
/*
* Diagnose required errors first.
*/
@ -1388,10 +1383,9 @@ static int process_cpu_timer_create(struct k_itimer *timer)
return posix_cpu_timer_create(timer);
}
static int process_cpu_nsleep(const clockid_t which_clock, int flags,
struct timespec64 *rqtp,
struct timespec __user *rmtp)
struct timespec64 *rqtp)
{
return posix_cpu_nsleep(PROCESS_CLOCK, flags, rqtp, rmtp);
return posix_cpu_nsleep(PROCESS_CLOCK, flags, rqtp);
}
static long process_cpu_nsleep_restart(struct restart_block *restart_block)
{