]> git.baikalelectronics.ru Git - kernel.git/commit
timekeeping: Fix clock_gettime vsyscall time warp
authorLin Ming <ming.m.lin@intel.com>
Tue, 17 Nov 2009 05:49:50 +0000 (13:49 +0800)
committerThomas Gleixner <tglx@linutronix.de>
Tue, 17 Nov 2009 10:52:34 +0000 (11:52 +0100)
commit53f6fed086d5d927b3c819035fb8a055a10ba562
tree96292fdc4ab443d6218077d363548532df6cbd8b
parentd850ae2dc0ecc6e770fd3d6f96cd0be29b6325f8
timekeeping: Fix clock_gettime vsyscall time warp

Since commit c2e9a1f2 "timekeeping: Move NTP adjusted clock multiplier
to struct timekeeper" the clock multiplier of vsyscall is updated with
the unmodified clock multiplier of the clock source and not with the
NTP adjusted multiplier of the timekeeper.

This causes user space observerable time warps:
new CLOCK-warp maximum: 120 nsecs,  00000025c337c537 -> 00000025c337c4bf

Add a new argument "mult" to update_vsyscall() and hand in the
timekeeping internal NTP adjusted multiplier.

Signed-off-by: Lin Ming <ming.m.lin@intel.com>
Cc: "Zhang Yanmin" <yanmin_zhang@linux.intel.com>
Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: Tony Luck <tony.luck@intel.com>
LKML-Reference: <1258436990.17765.83.camel@minggr.sh.intel.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
arch/ia64/kernel/time.c
arch/powerpc/kernel/time.c
arch/s390/kernel/time.c
arch/x86/kernel/vsyscall_64.c
include/linux/clocksource.h
kernel/time/timekeeping.c