diff --git a/[refs] b/[refs] index c26362d53536..7dc2502bd459 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 1d4ec7b1d6f130818f9b62dea3411d9ee2ff6ff6 +refs/heads/master: 2008220879af095d00ca27eb168a55c8595fbc0b diff --git a/trunk/kernel/time.c b/trunk/kernel/time.c index e325597f5bf5..5b81da08bbdb 100644 --- a/trunk/kernel/time.c +++ b/trunk/kernel/time.c @@ -57,17 +57,14 @@ EXPORT_SYMBOL(sys_tz); */ asmlinkage long sys_time(time_t __user * tloc) { - /* - * We read xtime.tv_sec atomically - it's updated - * atomically by update_wall_time(), so no need to - * even read-lock the xtime seqlock: - */ - time_t i = xtime.tv_sec; + time_t i; + struct timespec tv; - smp_rmb(); /* sys_time() results are coherent */ + getnstimeofday(&tv); + i = tv.tv_sec; if (tloc) { - if (put_user(i, tloc)) + if (put_user(i,tloc)) i = -EFAULT; } return i;