Fix non-TSC guest clocksource lockup
authorRusty Russell <rusty@rustcorp.com.au>
Thu, 9 Aug 2007 10:52:35 +0000 (20:52 +1000)
committerLinus Torvalds <torvalds@woody.linux-foundation.org>
Thu, 9 Aug 2007 15:14:56 +0000 (08:14 -0700)
commit37250097e1b730c30da1790e354c0da65e617043
tree354c1193eb230ecc27eb1a00d555d8c2bc7fd6e9
parent88ffc3505988196ef5cfdc0278ad89025c2a7b1a
Fix non-TSC guest clocksource lockup

lguest uses a host-supplied wallclock-based clocksource when the TSC
is not reliable.  As this is already in nanoseconds, I naively used a
multiplier of 1 and a shift of 0.

But update_wall_time() in its infinite wisdom decides to adjust the
clock a little (where does it think it's getting a more accurate time
from?)

It will happily tweak the multiplier... to 0, then -1.

So the "fix" is to use a shift of 22 like everyone else, and a
multiplier of 1 << 22.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
drivers/lguest/lguest.c