time: Use ktime_get_real_seconds() in time syscall
authorArnd Bergmann <arnd@arndb.de>
Mon, 18 Jun 2018 14:08:00 +0000 (16:08 +0200)
committerThomas Gleixner <tglx@linutronix.de>
Tue, 19 Jun 2018 07:56:26 +0000 (09:56 +0200)
Both get_seconds() and do_gettimeofday() are deprecated. Change the time()
implementation to use the replacement function instead.

Obviously the system call will still overflow in 2038, but this gets us
closer to removing the old helper functions.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: John Stultz <john.stultz@linaro.org>
Cc: y2038@lists.linaro.org
Cc: Stephen Boyd <sboyd@kernel.org>
Cc: Deepa Dinamani <deepa.kernel@gmail.com>
Cc: Al Viro <viro@zeniv.linux.org.uk>
Link: https://lkml.kernel.org/r/20180618140811.2998503-2-arnd@arndb.de
kernel/time/time.c

index 6fa9921..b1225db 100644 (file)
@@ -63,7 +63,7 @@ EXPORT_SYMBOL(sys_tz);
  */
 SYSCALL_DEFINE1(time, time_t __user *, tloc)
 {
-       time_t i = get_seconds();
+       time_t i = (time_t)ktime_get_real_seconds();
 
        if (tloc) {
                if (put_user(i,tloc))
@@ -106,11 +106,9 @@ SYSCALL_DEFINE1(stime, time_t __user *, tptr)
 /* compat_time_t is a 32 bit "long" and needs to get converted. */
 COMPAT_SYSCALL_DEFINE1(time, compat_time_t __user *, tloc)
 {
-       struct timeval tv;
        compat_time_t i;
 
-       do_gettimeofday(&tv);
-       i = tv.tv_sec;
+       i = (compat_time_t)ktime_get_real_seconds();
 
        if (tloc) {
                if (put_user(i,tloc))