* [PATCH 5.15.y] mm/damon/tests/vaddr-kunit: handle alloc failures on damon_do_test_apply_three_regions()
[not found] <2026010548-handrail-gallantly-8186@gregkh>
@ 2026-01-06 2:48 ` SeongJae Park
0 siblings, 0 replies; only message in thread
From: SeongJae Park @ 2026-01-06 2:48 UTC (permalink / raw)
To: stable
Cc: damon, SeongJae Park, Brendan Higgins, David Gow, Kefeng Wang,
Andrew Morton
damon_do_test_apply_three_regions() is assuming all dynamic memory
allocation in it will succeed. Those are indeed likely in the real use
cases since those allocations are too small to fail, but theoretically
those could fail. In the case, inappropriate memory access can happen.
Fix it by appropriately cleanup pre-allocated memory and skip the
execution of the remaining tests in the failure cases.
Link: https://lkml.kernel.org/r/20251101182021.74868-18-sj@kernel.org
Fixes: 17ccae8bb5c9 ("mm/damon: add kunit tests")
Signed-off-by: SeongJae Park <sj@kernel.org>
Cc: Brendan Higgins <brendan.higgins@linux.dev>
Cc: David Gow <davidgow@google.com>
Cc: Kefeng Wang <wangkefeng.wang@huawei.com>
Cc: <stable@vger.kernel.org> [5.15+]
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
(cherry picked from commit 2b22d0fcc6320ba29b2122434c1d2f0785fb0a25)
Signed-off-by: SeongJae Park <sj@kernel.org>
---
mm/damon/vaddr-test.h | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/mm/damon/vaddr-test.h b/mm/damon/vaddr-test.h
index 5531766ff09f..ceb8368b9a36 100644
--- a/mm/damon/vaddr-test.h
+++ b/mm/damon/vaddr-test.h
@@ -141,8 +141,14 @@ static void damon_do_test_apply_three_regions(struct kunit *test,
int i;
t = damon_new_target(42);
+ if (!t)
+ kunit_skip(test, "target alloc fail");
for (i = 0; i < nr_regions / 2; i++) {
r = damon_new_region(regions[i * 2], regions[i * 2 + 1]);
+ if (!r) {
+ damon_destroy_target(t);
+ kunit_skip(test, "region alloc fail");
+ }
damon_add_region(r, t);
}
damon_add_target(ctx, t);
--
2.47.3
^ permalink raw reply related [flat|nested] only message in thread