From 186b1ac05867d6410d421fe3f71b3fad5a3e4410 Mon Sep 17 00:00:00 2001 From: Linus Torvalds Date: Fri, 20 Jul 2007 13:28:54 -0700 Subject: [PATCH] --- yaml --- r: 62226 b: refs/heads/master c: 2008220879af095d00ca27eb168a55c8595fbc0b h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/kernel/time.c | 13 +++++-------- 2 files changed, 6 insertions(+), 9 deletions(-) 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;