[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <20220625003854.1230114-3-Liam.Howlett@oracle.com>
Date: Sat, 25 Jun 2022 00:39:07 +0000
From: Liam Howlett <liam.howlett@...cle.com>
To: "maple-tree@...ts.infradead.org" <maple-tree@...ts.infradead.org>,
"linux-mm@...ck.org" <linux-mm@...ck.org>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
Andrew Morton <akpm@...ux-foundation.org>,
Yu Zhao <yuzhao@...gle.com>
Subject: [PATCH Fix 2/2] test_maple_tree: Add test for spanning store of
entire range.
Entire range store over an existing tree would cause an underflow in
mas_spanning_store() when the tree is multiple levels. Add a testcase
to ensure it doesn't happen again.
Fixes: 51282228cdd4 (lib/test_maple_tree: add testing for maple tree)
Signed-off-by: Liam R. Howlett <Liam.Howlett@...cle.com>
---
lib/test_maple_tree.c | 13 +++++++++++++
1 file changed, 13 insertions(+)
diff --git a/lib/test_maple_tree.c b/lib/test_maple_tree.c
index 9fc0618f4ae7..8de5705b7b9b 100644
--- a/lib/test_maple_tree.c
+++ b/lib/test_maple_tree.c
@@ -35676,6 +35676,19 @@ static noinline void check_spanning_write(struct maple_tree *mt)
mtree_unlock(mt);
mtree_destroy(mt);
+ for (i = 1; i <= max; i++)
+ mtree_test_store_range(mt, i * 10, i * 10 + 5, &i);
+
+ mtree_lock(mt);
+ mas_set_range(&mas, 9, 50006); /* Will expand to 0 - ULONG_MAX */
+ mas_store_gfp(&mas, NULL, GFP_KERNEL);
+ mas_set(&mas, 1205);
+ MT_BUG_ON(mt, mas_walk(&mas) != NULL);
+ mtree_unlock(mt);
+ mt_dump(mt);
+ mt_validate(mt);
+ mtree_destroy(mt);
+
/* Test spanning store that requires a right cousin rebalance */
mt_init_flags(mt, MT_FLAGS_ALLOC_RANGE);
for (i = 0; i <= max; i++)
--
2.35.1
Powered by blists - more mailing lists