mirror of https://gitee.com/openkylin/linux.git
[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: Atsushi Nemoto <anemo@mba.ocn.ne.jp> Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
This commit is contained in:
parent
71efa38c0e
commit
800d11420d
|
@ -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);
|
||||
|
|
Loading…
Reference in New Issue