Skip to content

Commit

Permalink
uml: fix bad NTP interaction with clock
Browse files Browse the repository at this point in the history
UML's supposed nanosecond clock interacts badly with NTP when NTP
decides that the clock has drifted ahead and needs to be slowed down.
Slowing down the clock is done by decrementing the cycle-to-nanosecond
multiplier, which is 1.  Decrementing that gives you 0 and time is
stopped.

This is fixed by switching to a microsecond clock, with a multiplier
of 1000.

Signed-off-by: Jeff Dike <jdike@linux.intel.com>
Cc: WANG Cong <xiyou.wangcong@gmail.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
  • Loading branch information
Jeff Dike authored and Linus Torvalds committed May 13, 2008
1 parent 309e96c commit cfd28f6
Showing 1 changed file with 2 additions and 2 deletions.
4 changes: 2 additions & 2 deletions arch/um/kernel/time.c
Original file line number Diff line number Diff line change
Expand Up @@ -75,15 +75,15 @@ static irqreturn_t um_timer(int irq, void *dev)

static cycle_t itimer_read(void)
{
return os_nsecs();
return os_nsecs() / 1000;
}

static struct clocksource itimer_clocksource = {
.name = "itimer",
.rating = 300,
.read = itimer_read,
.mask = CLOCKSOURCE_MASK(64),
.mult = 1,
.mult = 1000,
.shift = 0,
.flags = CLOCK_SOURCE_IS_CONTINUOUS,
};
Expand Down

0 comments on commit cfd28f6

Please sign in to comment.