aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/time/posix-timers.c
diff options
context:
space:
mode:
authorAl Viro <viro@ZenIV.linux.org.uk>2017-06-07 09:42:30 +0100
committerThomas Gleixner <tglx@linutronix.de>2017-06-14 00:00:41 +0200
commit99e6c0e6ec349575886ca7daffc9cb7ec583176f (patch)
tree3b4225e202a22e20b426ede53d6ced424c395c0c /kernel/time/posix-timers.c
parenthrtimer: Move copyout of remaining time to do_nanosleep() (diff)
downloadlinux-dev-99e6c0e6ec349575886ca7daffc9cb7ec583176f.tar.xz
linux-dev-99e6c0e6ec349575886ca7daffc9cb7ec583176f.zip
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
Diffstat (limited to 'kernel/time/posix-timers.c')
-rw-r--r--kernel/time/posix-timers.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/kernel/time/posix-timers.c b/kernel/time/posix-timers.c
index 1a9f59f8afc2..a3e5c01b430e 100644
--- a/kernel/time/posix-timers.c
+++ b/kernel/time/posix-timers.c
@@ -1041,11 +1041,8 @@ SYSCALL_DEFINE2(clock_getres, const clockid_t, which_clock,
* nanosleep for monotonic and realtime clocks
*/
static int common_nsleep(const clockid_t which_clock, int flags,
- struct timespec64 *tsave, struct timespec __user *rmtp)
+ struct timespec64 *tsave)
{
- if (flags & TIMER_ABSTIME)
- rmtp = NULL;
- current->restart_block.nanosleep.rmtp = rmtp;
return hrtimer_nanosleep(tsave, flags & TIMER_ABSTIME ?
HRTIMER_MODE_ABS : HRTIMER_MODE_REL,
which_clock);
@@ -1070,8 +1067,11 @@ SYSCALL_DEFINE4(clock_nanosleep, const clockid_t, which_clock, int, flags,
t64 = timespec_to_timespec64(t);
if (!timespec64_valid(&t64))
return -EINVAL;
+ if (flags & TIMER_ABSTIME)
+ rmtp = NULL;
+ current->restart_block.nanosleep.rmtp = rmtp;
- return kc->nsleep(which_clock, flags, &t64, rmtp);
+ return kc->nsleep(which_clock, flags, &t64);
}
/*