Commit 800d1142 authored by Atsushi Nemoto's avatar Atsushi Nemoto Committed by Ralf Baechle

[MIPS] Use USECS_PER_SEC / HZ instead of tick_usec in do_gettimeofday.

    
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: default avatarAtsushi Nemoto <anemo@mba.ocn.ne.jp>
Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
parent 71efa38c
...@@ -163,7 +163,7 @@ void do_gettimeofday(struct timeval *tv) ...@@ -163,7 +163,7 @@ void do_gettimeofday(struct timeval *tv)
unsigned long seq; unsigned long seq;
unsigned long lost; unsigned long lost;
unsigned long usec, sec; unsigned long usec, sec;
unsigned long max_ntp_tick = tick_usec - tickadj; unsigned long max_ntp_tick;
do { do {
seq = read_seqbegin(&xtime_lock); seq = read_seqbegin(&xtime_lock);
...@@ -178,12 +178,13 @@ void do_gettimeofday(struct timeval *tv) ...@@ -178,12 +178,13 @@ void do_gettimeofday(struct timeval *tv)
* Better to lose some accuracy than have time go backwards.. * Better to lose some accuracy than have time go backwards..
*/ */
if (unlikely(time_adjust < 0)) { if (unlikely(time_adjust < 0)) {
max_ntp_tick = (USEC_PER_SEC / HZ) - tickadj;
usec = min(usec, max_ntp_tick); usec = min(usec, max_ntp_tick);
if (lost) if (lost)
usec += lost * max_ntp_tick; usec += lost * max_ntp_tick;
} else if (unlikely(lost)) } else if (unlikely(lost))
usec += lost * tick_usec; usec += lost * (USEC_PER_SEC / HZ);
sec = xtime.tv_sec; sec = xtime.tv_sec;
usec += (xtime.tv_nsec / 1000); usec += (xtime.tv_nsec / 1000);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment