Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

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

[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
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -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);