mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-14 07:44:21 +08:00
timekeeping: Fix bogus clock_was_set() invocation in do_adjtimex()
commit5916be8a53
upstream. The addition of the bases argument to clock_was_set() fixed up all call sites correctly except for do_adjtimex(). This uses CLOCK_REALTIME instead of CLOCK_SET_WALL as argument. CLOCK_REALTIME is 0. As a result the effect of that clock_was_set() notification is incomplete and might result in timers expiring late because the hrtimer code does not re-evaluate the affected clock bases. Use CLOCK_SET_WALL instead of CLOCK_REALTIME to tell the hrtimers code which clock bases need to be re-evaluated. Fixes:17a1b8826b
("hrtimer: Add bases argument to clock_was_set()") Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Cc: stable@vger.kernel.org Link: https://lore.kernel.org/all/877ccx7igo.ffs@tglx Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
9532482c91
commit
eb044b9c23
@ -2459,7 +2459,7 @@ int do_adjtimex(struct __kernel_timex *txc)
|
||||
clock_set |= timekeeping_advance(TK_ADV_FREQ);
|
||||
|
||||
if (clock_set)
|
||||
clock_was_set(CLOCK_REALTIME);
|
||||
clock_was_set(CLOCK_SET_WALL);
|
||||
|
||||
ntp_notify_cmos_timer();
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user