aboutsummaryrefslogtreecommitdiffstats
path: root/arch/ia64/kernel/time.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/ia64/kernel/time.c')
-rw-r--r--arch/ia64/kernel/time.c10
1 files changed, 3 insertions, 7 deletions
diff --git a/arch/ia64/kernel/time.c b/arch/ia64/kernel/time.c
index aa94bdda9de8..ecc904b33c5f 100644
--- a/arch/ia64/kernel/time.c
+++ b/arch/ia64/kernel/time.c
@@ -34,9 +34,7 @@
34 34
35static cycle_t itc_get_cycles(struct clocksource *cs); 35static cycle_t itc_get_cycles(struct clocksource *cs);
36 36
37struct fsyscall_gtod_data_t fsyscall_gtod_data = { 37struct fsyscall_gtod_data_t fsyscall_gtod_data;
38 .lock = __SEQLOCK_UNLOCKED(fsyscall_gtod_data.lock),
39};
40 38
41struct itc_jitter_data_t itc_jitter_data; 39struct itc_jitter_data_t itc_jitter_data;
42 40
@@ -459,9 +457,7 @@ void update_vsyscall_tz(void)
459void update_vsyscall(struct timespec *wall, struct timespec *wtm, 457void update_vsyscall(struct timespec *wall, struct timespec *wtm,
460 struct clocksource *c, u32 mult) 458 struct clocksource *c, u32 mult)
461{ 459{
462 unsigned long flags; 460 write_seqcount_begin(&fsyscall_gtod_data.seq);
463
464 write_seqlock_irqsave(&fsyscall_gtod_data.lock, flags);
465 461
466 /* copy fsyscall clock data */ 462 /* copy fsyscall clock data */
467 fsyscall_gtod_data.clk_mask = c->mask; 463 fsyscall_gtod_data.clk_mask = c->mask;
@@ -484,6 +480,6 @@ void update_vsyscall(struct timespec *wall, struct timespec *wtm,
484 fsyscall_gtod_data.monotonic_time.tv_sec++; 480 fsyscall_gtod_data.monotonic_time.tv_sec++;
485 } 481 }
486 482
487 write_sequnlock_irqrestore(&fsyscall_gtod_data.lock, flags); 483 write_seqcount_end(&fsyscall_gtod_data.seq);
488} 484}
489 485