diff options
| author | Nathan Lynch <nathan_lynch@mentor.com> | 2014-02-03 14:48:52 -0500 |
|---|---|---|
| committer | Catalin Marinas <catalin.marinas@arm.com> | 2014-02-05 06:55:49 -0500 |
| commit | d4022a335271a48cce49df35d825897914fbffe3 (patch) | |
| tree | f6de1d60e6962eba14aa7a19342a362ce38ec86d | |
| parent | 069b918623e1510e58dacf178905a72c3baa3ae4 (diff) | |
arm64: vdso: update wtm fields for CLOCK_MONOTONIC_COARSE
Update wall-to-monotonic fields in the VDSO data page
unconditionally. These are used to service CLOCK_MONOTONIC_COARSE,
which is not guarded by use_syscall.
Signed-off-by: Nathan Lynch <nathan_lynch@mentor.com>
Acked-by: Will Deacon <will.deacon@arm.com>
Cc: <stable@vger.kernel.org>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
| -rw-r--r-- | arch/arm64/kernel/vdso.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/arch/arm64/kernel/vdso.c b/arch/arm64/kernel/vdso.c index 65d40cf6945a..a7149cae1615 100644 --- a/arch/arm64/kernel/vdso.c +++ b/arch/arm64/kernel/vdso.c | |||
| @@ -238,6 +238,8 @@ void update_vsyscall(struct timekeeper *tk) | |||
| 238 | vdso_data->use_syscall = use_syscall; | 238 | vdso_data->use_syscall = use_syscall; |
| 239 | vdso_data->xtime_coarse_sec = xtime_coarse.tv_sec; | 239 | vdso_data->xtime_coarse_sec = xtime_coarse.tv_sec; |
| 240 | vdso_data->xtime_coarse_nsec = xtime_coarse.tv_nsec; | 240 | vdso_data->xtime_coarse_nsec = xtime_coarse.tv_nsec; |
| 241 | vdso_data->wtm_clock_sec = tk->wall_to_monotonic.tv_sec; | ||
| 242 | vdso_data->wtm_clock_nsec = tk->wall_to_monotonic.tv_nsec; | ||
| 241 | 243 | ||
| 242 | if (!use_syscall) { | 244 | if (!use_syscall) { |
| 243 | vdso_data->cs_cycle_last = tk->clock->cycle_last; | 245 | vdso_data->cs_cycle_last = tk->clock->cycle_last; |
| @@ -245,8 +247,6 @@ void update_vsyscall(struct timekeeper *tk) | |||
| 245 | vdso_data->xtime_clock_nsec = tk->xtime_nsec; | 247 | vdso_data->xtime_clock_nsec = tk->xtime_nsec; |
| 246 | vdso_data->cs_mult = tk->mult; | 248 | vdso_data->cs_mult = tk->mult; |
| 247 | vdso_data->cs_shift = tk->shift; | 249 | vdso_data->cs_shift = tk->shift; |
| 248 | vdso_data->wtm_clock_sec = tk->wall_to_monotonic.tv_sec; | ||
| 249 | vdso_data->wtm_clock_nsec = tk->wall_to_monotonic.tv_nsec; | ||
| 250 | } | 250 | } |
| 251 | 251 | ||
| 252 | smp_wmb(); | 252 | smp_wmb(); |
