diff options
| author | Tony Breeds <[email protected]> | 2007-10-18 03:04:57 -0700 |
|---|---|---|
| committer | Linus Torvalds <[email protected]> | 2007-10-18 14:37:20 -0700 |
| commit | 2c6221483169ddd4c04797cd7296ed4fe52fcdd7 (patch) | |
| tree | 1db73f0bf60b036abe995350637a9a3e916c0ec2 /kernel | |
| parent | 6212e3a388fdda3f19fa660ef5a30edf54d1dcfd (diff) | |
Fix discrepancy between VDSO based gettimeofday() and sys_gettimeofday().
On platforms that copy sys_tz into the vdso (currently only x86_64, soon to
include powerpc), it is possible for the vdso to get out of sync if a user
calls (admittedly unusual) settimeofday(NULL, ptr).
This patch adds a hook for architectures that set
CONFIG_GENERIC_TIME_VSYSCALL to ensure when sys_tz is updated they can also
updatee their copy in the vdso.
Signed-off-by: Tony Breeds <[email protected]>
Cc: Andi Kleen <[email protected]>
Cc: Tony Luck <[email protected]>
Acked-by: John Stultz <[email protected]>
Cc: Paul Mackerras <[email protected]>
Cc: Benjamin Herrenschmidt <[email protected]>
Cc: Thomas Gleixner <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
Diffstat (limited to 'kernel')
| -rw-r--r-- | kernel/time.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/kernel/time.c b/kernel/time.c index 2d5b6a682138..d9725bdcd045 100644 --- a/kernel/time.c +++ b/kernel/time.c @@ -30,6 +30,7 @@ #include <linux/module.h> #include <linux/timex.h> #include <linux/capability.h> +#include <linux/clocksource.h> #include <linux/errno.h> #include <linux/syscalls.h> #include <linux/security.h> @@ -158,6 +159,7 @@ int do_sys_settimeofday(struct timespec *tv, struct timezone *tz) if (tz) { /* SMP safe, global irq locking makes it work. */ sys_tz = *tz; + update_vsyscall_tz(); if (firsttime) { firsttime = 0; if (!tv) |