[PATCH v2] timekeeping: Convert to use jiffies macro

From: Chen Yufan
Date: Sun Aug 25 2024 - 23:28:34 EST


Use time_after instead of using
jiffies directly to handle wraparound.

Signed-off-by: Chen Yufan <chenyufan@xxxxxxxx>
---
The modifications made compared to the previous version are as follows:
1. change the type of timekeeper::last_warning to
unsigned long.
---
include/linux/timekeeper_internal.h | 2 +-
kernel/time/timekeeping.c | 4 ++--
2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/include/linux/timekeeper_internal.h b/include/linux/timekeeper_internal.h
index 84ff2844df2a..928a9258b7dd 100644
--- a/include/linux/timekeeper_internal.h
+++ b/include/linux/timekeeper_internal.h
@@ -125,7 +125,7 @@ struct timekeeper {
/* Flag used to avoid updating NTP twice with same second */
u32 skip_second_overflow;
#ifdef CONFIG_DEBUG_TIMEKEEPING
- long last_warning;
+ unsigned long last_warning;
/*
* These simple flag variables are managed
* without locks, which is racy, but they are
diff --git a/kernel/time/timekeeping.c b/kernel/time/timekeeping.c
index 5391e4167d60..6cda65dbe18f 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");
--
2.39.0