提交 cfd28f66 编写于 作者: J Jeff Dike 提交者: Linus Torvalds

uml: fix bad NTP interaction with clock

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: NJeff Dike <jdike@linux.intel.com>
Cc: WANG Cong <xiyou.wangcong@gmail.com>
Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
上级 309e96cd
...@@ -75,7 +75,7 @@ static irqreturn_t um_timer(int irq, void *dev) ...@@ -75,7 +75,7 @@ static irqreturn_t um_timer(int irq, void *dev)
static cycle_t itimer_read(void) static cycle_t itimer_read(void)
{ {
return os_nsecs(); return os_nsecs() / 1000;
} }
static struct clocksource itimer_clocksource = { static struct clocksource itimer_clocksource = {
...@@ -83,7 +83,7 @@ static struct clocksource itimer_clocksource = { ...@@ -83,7 +83,7 @@ static struct clocksource itimer_clocksource = {
.rating = 300, .rating = 300,
.read = itimer_read, .read = itimer_read,
.mask = CLOCKSOURCE_MASK(64), .mask = CLOCKSOURCE_MASK(64),
.mult = 1, .mult = 1000,
.shift = 0, .shift = 0,
.flags = CLOCK_SOURCE_IS_CONTINUOUS, .flags = CLOCK_SOURCE_IS_CONTINUOUS,
}; };
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册