aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristoph Lameter <clameter@engr.sgi.com>2005-04-28 11:13:58 -0400
committerLinus Torvalds <torvalds@ppc970.osdl.org>2005-04-28 11:13:58 -0400
commit9acf6597c533f3d5c991f730c6a1be296679018e (patch)
tree8e567fd0f45d16c4656e7e9a42c7d4749d19ca48
parentbdceb6a0162274934386f19f3ea5a9d44feb0b20 (diff)
[PATCH] time interpolator: Fix settimeofday inaccuracy
settimeofday will set the time a little bit too early on systems using time interpolation since it subtracts the current interpolator offset from the time. This used to be necessary with the code in 2.6.9 and earlier but the new code resets the time interpolator after setting the time. Thus the time is set too early and gettimeofday will return a time slightly before the time specified with settimeofday if invoked immeditely after settimeofday. This removes the obsolete subtraction of the time interpolator offset and makes settimeofday set the time accurately. Signed-off-by: Christoph Lameter <clameter@sgi.com> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-rw-r--r--kernel/time.c8
1 files changed, 0 insertions, 8 deletions
diff --git a/kernel/time.c b/kernel/time.c
index 96fd0f499631..d4335c1c884c 100644
--- a/kernel/time.c
+++ b/kernel/time.c
@@ -516,14 +516,6 @@ int do_settimeofday (struct timespec *tv)
516 516
517 write_seqlock_irq(&xtime_lock); 517 write_seqlock_irq(&xtime_lock);
518 { 518 {
519 /*
520 * This is revolting. We need to set "xtime" correctly. However, the value
521 * in this location is the value at the most recent update of wall time.
522 * Discover what correction gettimeofday would have done, and then undo
523 * it!
524 */
525 nsec -= time_interpolator_get_offset();
526
527 wtm_sec = wall_to_monotonic.tv_sec + (xtime.tv_sec - sec); 519 wtm_sec = wall_to_monotonic.tv_sec + (xtime.tv_sec - sec);
528 wtm_nsec = wall_to_monotonic.tv_nsec + (xtime.tv_nsec - nsec); 520 wtm_nsec = wall_to_monotonic.tv_nsec + (xtime.tv_nsec - nsec);
529 521