linux-mips
[Top] [All Lists]

[PATCH] [MIPS] use USECS_PER_SEC / HZ instead of tick_usec in do_gettime

To: linux-mips@linux-mips.org
Subject: [PATCH] [MIPS] use USECS_PER_SEC / HZ instead of tick_usec in do_gettimeofday
From: Atsushi Nemoto <anemo@mba.ocn.ne.jp>
Date: Wed, 01 Mar 2006 15:16:26 +0900 (JST)
Cc: ralf@linux-mips.org, geert@linux-m68k.org, takata@linux-m32r.org, davem@davemloft.net
Original-recipient: rfc822;linux-mips@linux-mips.org
Sender: linux-mips-bounce@linux-mips.org
The 'tick_usec' is USER_HZ period in usec.  do_gettimeofday() should
use kernel HZ value.

Here is a patch for MIPS.  It seems m32r, m68k and sparc have same
problem though their HZ and USER_HZ are same for now.

Signed-off-by: Atsushi Nemoto <anemo@mba.ocn.ne.jp>

diff --git a/arch/mips/kernel/time.c b/arch/mips/kernel/time.c
index 7050b4f..42c94c7 100644
--- a/arch/mips/kernel/time.c
+++ b/arch/mips/kernel/time.c
@@ -163,7 +163,7 @@ void do_gettimeofday(struct timeval *tv)
        unsigned long seq;
        unsigned long lost;
        unsigned long usec, sec;
-       unsigned long max_ntp_tick = tick_usec - tickadj;
+       unsigned long max_ntp_tick;
 
        do {
                seq = read_seqbegin(&xtime_lock);
@@ -178,12 +178,13 @@ void do_gettimeofday(struct timeval *tv)
                 * Better to lose some accuracy than have time go backwards..
                 */
                if (unlikely(time_adjust < 0)) {
+                       max_ntp_tick = (USEC_PER_SEC / HZ) - tickadj;
                        usec = min(usec, max_ntp_tick);
 
                        if (lost)
                                usec += lost * max_ntp_tick;
                } else if (unlikely(lost))
-                       usec += lost * tick_usec;
+                       usec += lost * (USEC_PER_SEC / HZ);
 
                sec = xtime.tv_sec;
                usec += (xtime.tv_nsec / 1000);

<Prev in Thread] Current Thread [Next in Thread>
  • [PATCH] [MIPS] use USECS_PER_SEC / HZ instead of tick_usec in do_gettimeofday, Atsushi Nemoto <=