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 43920de425f1..8e991a0b5e35 100644
--- a/arch/ia64/kernel/time.c
+++ b/arch/ia64/kernel/time.c
@@ -35,9 +35,7 @@
35 35
36static cycle_t itc_get_cycles(struct clocksource *cs); 36static cycle_t itc_get_cycles(struct clocksource *cs);
37 37
38struct fsyscall_gtod_data_t fsyscall_gtod_data = { 38struct fsyscall_gtod_data_t fsyscall_gtod_data;
39 .lock = __SEQLOCK_UNLOCKED(fsyscall_gtod_data.lock),
40};
41 39
42struct itc_jitter_data_t itc_jitter_data; 40struct itc_jitter_data_t itc_jitter_data;
43 41
@@ -460,9 +458,7 @@ void update_vsyscall_tz(void)
460void update_vsyscall(struct timespec *wall, struct timespec *wtm, 458void update_vsyscall(struct timespec *wall, struct timespec *wtm,
461 struct clocksource *c, u32 mult) 459 struct clocksource *c, u32 mult)
462{ 460{
463 unsigned long flags; 461 write_seqcount_begin(&fsyscall_gtod_data.seq);
464
465 write_seqlock_irqsave(&fsyscall_gtod_data.lock, flags);
466 462
467 /* copy fsyscall clock data */ 463 /* copy fsyscall clock data */
468 fsyscall_gtod_data.clk_mask = c->mask; 464 fsyscall_gtod_data.clk_mask = c->mask;
@@ -485,6 +481,6 @@ void update_vsyscall(struct timespec *wall, struct timespec *wtm,
485 fsyscall_gtod_data.monotonic_time.tv_sec++; 481 fsyscall_gtod_data.monotonic_time.tv_sec++;
486 } 482 }
487 483
488 write_sequnlock_irqrestore(&fsyscall_gtod_data.lock, flags); 484 write_seqcount_end(&fsyscall_gtod_data.seq);
489} 485}
490 486