From: Quanmin Yan yanquanmin1@huawei.com
When creating a new scheme of DAMON_RECLAIM, the calculation of 'min_age_region' uses 'aggr_interval' as the divisor, which may lead to division-by-zero errors. Fix it by directly returning -EINVAL when such a case occurs.
Link: https://lkml.kernel.org/r/20250827115858.1186261-3-yanquanmin1@huawei.com Fixes: f5a79d7c0c87 ("mm/damon: introduce struct damos_access_pattern") Signed-off-by: Quanmin Yan yanquanmin1@huawei.com Reviewed-by: SeongJae Park sj@kernel.org Cc: Kefeng Wang wangkefeng.wang@huawei.com Cc: ze zuo zuoze1@huawei.com Cc: stable@vger.kernel.org [6.1+] Signed-off-by: Andrew Morton akpm@linux-foundation.org (cherry picked from commit e6b543ca9806d7bced863f43020e016ee996c057) Signed-off-by: SeongJae Park sj@kernel.org --- mm/damon/reclaim.c | 3 +++ 1 file changed, 3 insertions(+)
diff --git a/mm/damon/reclaim.c b/mm/damon/reclaim.c index cc337e94acfd..7952a0b7f409 100644 --- a/mm/damon/reclaim.c +++ b/mm/damon/reclaim.c @@ -157,6 +157,9 @@ static int damon_reclaim_apply_parameters(void) struct damos *scheme, *old_scheme; int err = 0;
+ if (!damon_reclaim_mon_attrs.aggr_interval) + return -EINVAL; + err = damon_set_attrs(ctx, &damon_reclaim_mon_attrs); if (err) return err;