The following commit has been merged into the timers/core branch of tip: Commit-ID: 42db2c2cb5ac3572380a9489b8f8bbe0e534dfc7 Gitweb: https://git.kernel.org/tip/42db2c2cb5ac3572380a9489b8f8bbe0e534dfc7 Author: Chen Yufan <chenyufan@xxxxxxxx> AuthorDate: Thu, 22 Aug 2024 15:07:17 +08:00 Committer: Thomas Gleixner <tglx@xxxxxxxxxxxxx> CommitterDate: Fri, 23 Aug 2024 20:15:11 +02:00 timekeeping: Use time_after() in timekeeping_check_update() The open coded comparison does not handle wrap arounds correctly. Signed-off-by: Chen Yufan <chenyufan@xxxxxxxx> Signed-off-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx> Link: https://lore.kernel.org/all/20240822070717.12773-1-chenyufan@xxxxxxxx --- kernel/time/timekeeping.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/kernel/time/timekeeping.c b/kernel/time/timekeeping.c index 2fa87dc..4fa42a1 100644 --- a/kernel/time/timekeeping.c +++ b/kernel/time/timekeeping.c @@ -217,7 +217,7 @@ static void timekeeping_check_update(struct timekeeper *tk, u64 offset) } if (tk->underflow_seen) { - if (jiffies - tk->last_warning > WARNING_FREQ) { + if (time_after(jiffies, tk->last_warning + WARNING_FREQ)) { printk_deferred("WARNING: Underflow in clocksource '%s' observed, time update ignored.\n", name); printk_deferred(" Please report this, consider using a different clocksource, if possible.\n"); printk_deferred(" Your kernel is probably still fine.\n"); @@ -227,7 +227,7 @@ static void timekeeping_check_update(struct timekeeper *tk, u64 offset) } if (tk->overflow_seen) { - if (jiffies - tk->last_warning > WARNING_FREQ) { + if (time_after(jiffies, tk->last_warning + WARNING_FREQ)) { printk_deferred("WARNING: Overflow in clocksource '%s' observed, time update capped.\n", name); printk_deferred(" Please report this, consider using a different clocksource, if possible.\n"); printk_deferred(" Your kernel is probably still fine.\n");