mm/damon/core: add damon_split_region_at() debug_sanity check

damon_split_region_at() should be called with the correct address to split
on.  Add a sanity check for that under CONFIG_DAMON_DEBUG_SANITY.

Link: https://lkml.kernel.org/r/20260306152914.86303-8-sj@kernel.org
Signed-off-by: SeongJae Park <sj@kernel.org>
Cc: Brendan Higgins <brendan.higgins@linux.dev>
Cc: David Gow <davidgow@google.com>
Cc: Shuah Khan <shuah@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
This commit is contained in:
SeongJae Park
2026-03-06 07:29:10 -08:00
committed by Andrew Morton
parent c070da2391
commit 6aa1f78354

View File

@@ -2588,6 +2588,21 @@ static void kdamond_merge_regions(struct damon_ctx *c, unsigned int threshold,
threshold / 2 < max_thres);
}
#ifdef CONFIG_DAMON_DEBUG_SANITY
static void damon_verify_split_region_at(struct damon_region *r,
unsigned long sz_r)
{
WARN_ONCE(sz_r == 0 || sz_r >= damon_sz_region(r),
"sz_r: %lu r: %lu-%lu (%lu)\n",
sz_r, r->ar.start, r->ar.end, damon_sz_region(r));
}
#else
static void damon_verify_split_region_at(struct damon_region *r,
unsigned long sz_r)
{
}
#endif
/*
* Split a region in two
*
@@ -2599,6 +2614,7 @@ static void damon_split_region_at(struct damon_target *t,
{
struct damon_region *new;
damon_verify_split_region_at(r, sz_r);
new = damon_new_region(r->ar.start + sz_r, r->ar.end);
if (!new)
return;