diff options
| author | SeongJae Park <sj@kernel.org> | 2026-03-07 22:49:13 +0300 |
|---|---|---|
| committer | Andrew Morton <akpm@linux-foundation.org> | 2026-04-05 23:53:22 +0300 |
| commit | f05e253637837b603682173ed6bd0bc873dc0496 (patch) | |
| tree | f886ac073a08248f53d9f77c8a2961226a64bbb9 | |
| parent | 7e6c650fdbdb76bb6db74d3af025b7327707e6a0 (diff) | |
| download | linux-f05e253637837b603682173ed6bd0bc873dc0496.tar.xz | |
mm/damon/core: use time_before() for next_apply_sis
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.
Link: https://lkml.kernel.org/r/20260307194915.203169-3-sj@kernel.org
Signed-off-by: SeongJae Park <sj@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
| -rw-r--r-- | mm/damon/core.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/mm/damon/core.c b/mm/damon/core.c index c8c2e4660b98..ac06465cd9eb 100644 --- a/mm/damon/core.c +++ b/mm/damon/core.c @@ -2097,7 +2097,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) @@ -2455,7 +2455,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) @@ -2479,7 +2479,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); |
