From: Liam R. Howlett Date: Thu, 24 Dec 2020 00:25:35 +0000 (-0500) Subject: maple_tree: Add test for mas_store_gfp() X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=4e5d132066020d44f8c089c47765f9975e15d98a;p=users%2Fjedix%2Flinux-maple.git maple_tree: Add test for mas_store_gfp() Signed-off-by: Liam R. Howlett --- diff --git a/lib/test_maple_tree.c b/lib/test_maple_tree.c index 3d198b053bc9..3aaaf283887c 100644 --- a/lib/test_maple_tree.c +++ b/lib/test_maple_tree.c @@ -35389,6 +35389,35 @@ static noinline void check_forking(struct maple_tree *mt) mtree_destroy(&newmt); } +static noinline void check_mas_store_gfp(struct maple_tree *mt) +{ + + struct maple_tree newmt; + int i, nr_entries = 135; + void *val; + MA_STATE(mas, mt, 0, 0); + MA_STATE(newmas, mt, 0, 0); + + for (i = 0; i <= nr_entries; i++) + mtree_store_range(mt, i*10, i*10 + 5, + xa_mk_value(i), GFP_KERNEL); + + mt_set_non_kernel(99999); + mtree_init(&newmt, MAPLE_ALLOC_RANGE); + newmas.tree = &newmt; + mas_reset(&newmas); + mas_set(&mas, 0); + mas_for_each(&mas, val, ULONG_MAX) { + newmas.index = mas.index; + newmas.last = mas.last; + mas_store_gfp(&newmas, val, GFP_KERNEL); + } + printk("alloc is %px\n", newmas.alloc); + mt_validate(&newmt); + mt_set_non_kernel(0); + mtree_destroy(&newmt); +} + #if defined(BENCH_FORK) static noinline void bench_forking(struct maple_tree *mt) { @@ -35636,6 +35665,10 @@ static int maple_tree_seed(void) check_forking(&tree); mtree_destroy(&tree); + mtree_init(&tree, MAPLE_ALLOC_RANGE); + check_mas_store_gfp(&tree); + mtree_destroy(&tree); + /* Test ranges (store and insert) */ mtree_init(&tree, 0); check_ranges(&tree);