Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 4e8f8b34 authored by John Stultz's avatar John Stultz Committed by Thomas Gleixner
Browse files

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: default avatarJohn Stultz <john.stultz@linaro.org>
Link: http://lkml.kernel.org/r/1365622909-953-1-git-send-email-john.stultz@linaro.org


Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
parent 51fd36f3
Loading
Loading
Loading
Loading
+7 −3
Original line number Diff line number Diff line
@@ -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);

	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);