]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
mm/damon/tests/vaddr-kunit: replace damon_add_region() with damon_set_regions()
authorSeongJae Park <sj@kernel.org>
Fri, 22 May 2026 15:40:15 +0000 (08:40 -0700)
committerAndrew Morton <akpm@linux-foundation.org>
Thu, 4 Jun 2026 21:45:00 +0000 (14:45 -0700)
DAMON virtual address operation set (vaddr) unit tests is using
damon_add_region() for setup of DAMON monitoring target region boundaries
setup.  But, damon_set_regions() is designed for exactly the purpose.  All
other DAMON API callers use the function for the purpose.  Replace
damon_add_region() usage in the unit tests with damon_set_regions(), for
unifying the use case and reducing the maintenance cost.

Link: https://lore.kernel.org/20260522154026.80546-5-sj@kernel.org
Signed-off-by: SeongJae Park <sj@kernel.org>
Cc: Brendan Higgins <brendan.higgins@linux.dev>
Cc: Shuah Khan <shuah@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
mm/damon/tests/vaddr-kunit.h

index 98e734d77d517977e117f42d50e27561bbdb5413..563fbc7e3f44835ef7707fe697feca95a750f77e 100644 (file)
@@ -132,22 +132,35 @@ static void damon_do_test_apply_three_regions(struct kunit *test,
                                unsigned long *expected, int nr_expected)
 {
        struct damon_target *t;
+       struct damon_addr_range *ranges;
        struct damon_region *r;
        int i;
 
        t = damon_new_target();
        if (!t)
                kunit_skip(test, "target alloc fail");
+
+       ranges = kmalloc_array(nr_regions / 2, sizeof(*ranges), GFP_KERNEL);
+       if (!ranges) {
+               damon_destroy_target(t, NULL);
+               kunit_skip(test, "ranges 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, NULL);
-                       kunit_skip(test, "region alloc fail");
-               }
-               damon_add_region(r, t);
+               ranges[i].start = regions[i * 2];
+               ranges[i].end = regions[i * 2 + 1];
        }
+       if (damon_set_regions(t, ranges, nr_regions / 2,
+                               DAMON_MIN_REGION_SZ)) {
+               kfree(ranges);
+               damon_destroy_target(t, NULL);
+               kunit_skip(test, "damon_set_regions() fail");
+       }
+       kfree(ranges);
 
-       damon_set_regions(t, three_regions, 3, DAMON_MIN_REGION_SZ);
+       if (damon_set_regions(t, three_regions, 3, DAMON_MIN_REGION_SZ)) {
+               damon_destroy_target(t, NULL);
+               kunit_skip(test, "second damon_set_regions() fail");
+       }
 
        for (i = 0; i < nr_expected / 2; i++) {
                r = __nth_region_of(t, i);