mirror of
https://github.com/torvalds/linux.git
synced 2024-11-23 12:42:02 +00:00
timekeeping: Make sure to notify hrtimers when TAI offset changes
Now that we have CLOCK_TAI timers, make sure we notify hrtimer code when TAI offset is changed. Signed-off-by: John Stultz <john.stultz@linaro.org> Link: http://lkml.kernel.org/r/1365622909-953-1-git-send-email-john.stultz@linaro.org Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
This commit is contained in:
parent
51fd36f3fa
commit
4e8f8b34b9
@ -607,6 +607,7 @@ void timekeeping_set_tai_offset(s32 tai_offset)
|
||||
__timekeeping_set_tai_offset(tk, tai_offset);
|
||||
write_seqcount_end(&timekeeper_seq);
|
||||
raw_spin_unlock_irqrestore(&timekeeper_lock, flags);
|
||||
clock_was_set();
|
||||
}
|
||||
|
||||
/**
|
||||
@ -1639,7 +1640,7 @@ int do_adjtimex(struct timex *txc)
|
||||
struct timekeeper *tk = &timekeeper;
|
||||
unsigned long flags;
|
||||
struct timespec ts;
|
||||
s32 tai;
|
||||
s32 orig_tai, tai;
|
||||
int ret;
|
||||
|
||||
/* Validate the data before disabling interrupts */
|
||||
@ -1663,10 +1664,13 @@ int do_adjtimex(struct timex *txc)
|
||||
raw_spin_lock_irqsave(&timekeeper_lock, flags);
|
||||
write_seqcount_begin(&timekeeper_seq);
|
||||
|
||||
tai = tk->tai_offset;
|
||||
orig_tai = tai = tk->tai_offset;
|
||||
ret = __do_adjtimex(txc, &ts, &tai);
|
||||
|
||||
__timekeeping_set_tai_offset(tk, tai);
|
||||
if (tai != orig_tai) {
|
||||
__timekeeping_set_tai_offset(tk, tai);
|
||||
clock_was_set_delayed();
|
||||
}
|
||||
write_seqcount_end(&timekeeper_seq);
|
||||
raw_spin_unlock_irqrestore(&timekeeper_lock, flags);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user