[PATCH 2/3] mm/damon/core: use time_before() for next_apply_sis
From: SeongJae Park
Date: Sat Mar 07 2026 - 14:49:47 EST
damon_ctx->passed_sample_intervals and damos->next_apply_sis are
unsigned long, and compared via normal comparison operators. It is
unsafe from overflow. Use time_before(), which is safe from overflow
when correctly used, instead.
Signed-off-by: SeongJae Park <sj@xxxxxxxxxx>
---
mm/damon/core.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/mm/damon/core.c b/mm/damon/core.c
index c4c30824465ee..4ede733a94cc0 100644
--- a/mm/damon/core.c
+++ b/mm/damon/core.c
@@ -2095,7 +2095,7 @@ static void damon_do_apply_schemes(struct damon_ctx *c,
damon_for_each_scheme(s, c) {
struct damos_quota *quota = &s->quota;
- if (c->passed_sample_intervals < s->next_apply_sis)
+ if (time_before(c->passed_sample_intervals, s->next_apply_sis))
continue;
if (!s->wmarks.activated)
@@ -2453,7 +2453,7 @@ static void kdamond_apply_schemes(struct damon_ctx *c)
bool has_schemes_to_apply = false;
damon_for_each_scheme(s, c) {
- if (c->passed_sample_intervals < s->next_apply_sis)
+ if (time_before(c->passed_sample_intervals, s->next_apply_sis))
continue;
if (!s->wmarks.activated)
@@ -2477,7 +2477,7 @@ static void kdamond_apply_schemes(struct damon_ctx *c)
}
damon_for_each_scheme(s, c) {
- if (c->passed_sample_intervals < s->next_apply_sis)
+ if (time_before(c->passed_sample_intervals, s->next_apply_sis))
continue;
damos_walk_complete(c, s);
damos_set_next_apply_sis(s, c);
--
2.47.3