[PATCH 2/2] mm/damon/reclaim: fix min_age_region truncation from unsigned long to unsigned int

From: Josh Law

Date: Thu Mar 19 2026 - 12:28:40 EST


min_age / aggr_interval can exceed UINT_MAX with extreme but valid
module parameter values, silently truncating min_age_region and
lowering the cold-page age threshold below what the user intended.
Clamp the result to UINT_MAX to match the field's type.

Signed-off-by: Josh Law <objecting@xxxxxxxxxxxxx>
---
mm/damon/reclaim.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/mm/damon/reclaim.c b/mm/damon/reclaim.c
index 9b55df304e51..303c64a56073 100644
--- a/mm/damon/reclaim.c
+++ b/mm/damon/reclaim.c
@@ -170,8 +170,8 @@ static struct damos *damon_reclaim_new_scheme(void)
.min_nr_accesses = 0,
.max_nr_accesses = 0,
/* for min_age or more micro-seconds */
- .min_age_region = min_age /
- damon_reclaim_mon_attrs.aggr_interval,
+ .min_age_region = min_t(unsigned long, min_age /
+ damon_reclaim_mon_attrs.aggr_interval, UINT_MAX),
.max_age_region = UINT_MAX,
};

--
2.34.1