summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeff Dike <jdike@addtoit.com>2008-08-05 16:14:03 -0400
committerGreg Kroah-Hartman <gregkh@suse.de>2008-08-20 11:15:32 -0700
commita2f5f89c579c5c7df9860c9ae328d6c8405f57c1 (patch)
tree7792f4753b986291f1e80c27228b7e530ecd41ff
parentc538f403b2d48ce41cfab3d087f6bebeaf9284ab (diff)
uml: fix bad NTP interaction with clock
commit cfd28f6695d0fc047478480791a21bdd4967f98e upstream 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> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-rw-r--r--arch/um/kernel/time.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/arch/um/kernel/time.c b/arch/um/kernel/time.c
index e066e84493b1..5036c81a50b6 100644
--- a/arch/um/kernel/time.c
+++ b/arch/um/kernel/time.c
@@ -74,7 +74,7 @@ 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 = {
@@ -82,7 +82,7 @@ static struct clocksource itimer_clocksource = {
.rating = 300,
.read = itimer_read,
.mask = CLOCKSOURCE_MASK(64),
- .mult = 1,
+ .mult = 1000,
.shift = 0,
.flags = CLOCK_SOURCE_IS_CONTINUOUS,
};