]> git.karo-electronics.de Git - karo-tx-linux.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)
committerGreg Kroah-Hartman <gregkh@suse.de>
Fri, 13 Aug 2010 20:20:13 +0000 (13:20 -0700)
commit8aa3149405e33cec4f866cfe7f92c2b40d259613
tree09f97167f628a98a2606cf0a7ff669797379c7de
parente66bb883118bf9db3b66f2ec3315be83d2b27aeb
timekeeping: Fix clock_gettime vsyscall time warp

commit 0696b711e4be45fa104c12329f617beb29c03f78 upstream.

Since commit 0a544198 "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>
Signed-off-by: Kurt Garloff <garloff@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.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