Skip to content

Commit 95093e5

Browse files
sjp38akpm00
authored andcommitted
mm/damon/core: disallow non-power of two min_region_sz on damon_start()
Commit d8f867f ("mm/damon: add damon_ctx->min_sz_region") introduced a bug that allows unaligned DAMON region address ranges. Commit c80f46a ("mm/damon/core: disallow non-power of two min_region_sz") fixed it, but only for damon_commit_ctx() use case. Still, DAMON sysfs interface can emit non-power of two min_region_sz via damon_start(). Fix the path by adding the is_power_of_2() check on damon_start(). The issue was discovered by sashiko [1]. Link: https://lore.kernel.org/20260411213638.77768-1-sj@kernel.org Link: https://lore.kernel.org/20260403155530.64647-1-sj@kernel.org [1] Fixes: d8f867f ("mm/damon: add damon_ctx->min_sz_region") Signed-off-by: SeongJae Park <sj@kernel.org> Cc: <stable@vger.kernel.org> # 6.18.x Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
1 parent ec05f51 commit 95093e5

1 file changed

Lines changed: 5 additions & 0 deletions

File tree

mm/damon/core.c

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1368,6 +1368,11 @@ int damon_start(struct damon_ctx **ctxs, int nr_ctxs, bool exclusive)
13681368
int i;
13691369
int err = 0;
13701370

1371+
for (i = 0; i < nr_ctxs; i++) {
1372+
if (!is_power_of_2(ctxs[i]->min_region_sz))
1373+
return -EINVAL;
1374+
}
1375+
13711376
mutex_lock(&damon_lock);
13721377
if ((exclusive && nr_running_ctxs) ||
13731378
(!exclusive && running_exclusive_ctxs)) {

0 commit comments

Comments
 (0)