path: root/kernel/time/hrtimer.c
diff options
authorDeepa Dinamani <deepa.kernel@gmail.com>2018-03-13 21:03:33 -0700
committerArnd Bergmann <arnd@arndb.de>2018-04-19 13:32:03 +0200
commit01909974b41036a6a8d3907c66cc7b41c9a73da9 (patch)
treea9152cca85ea79870dbd06c7717196f8981745f7 /kernel/time/hrtimer.c
parenttime: Change types to new y2038 safe __kernel_* types (diff)
time: Change nanosleep to safe __kernel_* types
Change over clock_nanosleep syscalls to use y2038 safe __kernel_timespec times. This will enable changing over of these syscalls to use new y2038 safe syscalls when the architectures define the CONFIG_64BIT_TIME. Note that nanosleep syscall is deprecated and does not have a plan for making it y2038 safe. But, the syscall should work as before on 64 bit machines and on 32 bit machines, the syscall works correctly until y2038 as before using the existing compat syscall version. There is no new syscall for supporting 64 bit time_t on 32 bit architectures. Cc: linux-api@vger.kernel.org Signed-off-by: Deepa Dinamani <deepa.kernel@gmail.com> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Diffstat (limited to 'kernel/time/hrtimer.c')
1 files changed, 6 insertions, 2 deletions
diff --git a/kernel/time/hrtimer.c b/kernel/time/hrtimer.c
index f183257ff0c6..d7051b3993b5 100644
--- a/kernel/time/hrtimer.c
+++ b/kernel/time/hrtimer.c
@@ -1747,8 +1747,10 @@ out:
return ret;
-SYSCALL_DEFINE2(nanosleep, struct timespec __user *, rqtp,
- struct timespec __user *, rmtp)
+#if !defined(CONFIG_64BIT_TIME) || defined(CONFIG_64BIT)
+SYSCALL_DEFINE2(nanosleep, struct __kernel_timespec __user *, rqtp,
+ struct __kernel_timespec __user *, rmtp)
struct timespec64 tu;
@@ -1763,6 +1765,8 @@ SYSCALL_DEFINE2(nanosleep, struct timespec __user *, rqtp,
return hrtimer_nanosleep(&tu, HRTIMER_MODE_REL, CLOCK_MONOTONIC);
COMPAT_SYSCALL_DEFINE2(nanosleep, struct compat_timespec __user *, rqtp,