From: Liam R. Howlett Date: Thu, 3 Mar 2022 16:51:42 +0000 (-0500) Subject: test_maple_tree: Fix mas_reuse_node() zeroing again. X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=c8bb0fac13c73eaa5f824eb44b9c6b61a722dbdb;p=users%2Fjedix%2Flinux-maple.git test_maple_tree: Fix mas_reuse_node() zeroing again. Signed-off-by: Liam R. Howlett --- diff --git a/lib/test_maple_tree.c b/lib/test_maple_tree.c index a9599bdb9dc9c..b26d74c89ac82 100644 --- a/lib/test_maple_tree.c +++ b/lib/test_maple_tree.c @@ -37359,6 +37359,69 @@ static noinline void check_fuzzer(struct maple_tree *mt) mtree_test_load(mt, 0); // 0x1 mtree_destroy(mt); + /* + * 7. Previous fix was incomplete, fix mas_resuse_node() clearing of old + * data by overwriting it first - that way metadata is of no concern. + */ + mt_init_flags(mt, 0); + mtree_test_load(mt, 1); // (nil) + mtree_test_insert(mt, 102, (void *)0xcd); // -17 + mtree_test_erase(mt, 2); // (nil) + mtree_test_erase(mt, 0); // (nil) + mtree_test_load(mt, 0); // (nil) + mtree_test_insert(mt, 4, (void *)0x9); // 0 + mtree_test_insert(mt, 2, (void *)0x5); // 0 + mtree_test_insert(mt, 110, (void *)0xdd); // 0 + mtree_test_insert(mt, 1, (void *)0x3); // 0 + mtree_test_insert_range(mt, 5, 0, (void *)0xb); // 0 + mtree_test_erase(mt, 2); // (nil) + mtree_test_store(mt , 0, (void *)0x1); // -22 + mtree_test_store(mt , 112, (void *)0xe1); // 0 + mtree_test_insert(mt, 21, (void *)0x2b); // 0 + mtree_test_store(mt , 1, (void *)0x3); // 0 + mtree_test_insert_range(mt, 110, 2, (void *)0xdd); // 0 + mtree_test_store(mt , 2, (void *)0x5); // -22 + mtree_test_load(mt, 22); // 0x5 + mtree_test_erase(mt, 2); // (nil) + mtree_test_store(mt , 210, (void *)0x1a5); // 0 + mtree_test_store_range(mt, 0, 2, (void *)0x1); // 0 + mtree_test_store(mt , 2, (void *)0x5); // 0 + mtree_test_erase(mt, 2); // 0x5 + mtree_test_erase(mt, 22); // 0x5 + mtree_test_erase(mt, 1); // (nil) + mtree_test_erase(mt, 2); // (nil) + mtree_test_store(mt , 0, (void *)0x1); // 0 + mtree_test_load(mt, 112); // (nil) + mtree_test_insert(mt, 2, (void *)0x5); // 0 + mtree_test_erase(mt, 2); // (nil) + mtree_test_store(mt , 1, (void *)0x3); // 0 + mtree_test_insert_range(mt, 1, 2, (void *)0x3); // 0 + mtree_test_erase(mt, 0); // 0x5 + mtree_test_erase(mt, 2); // 0x1 + mtree_test_store(mt , 2, (void *)0x5); // -17 + mtree_test_erase(mt, 0); // 0x5 + mtree_test_erase(mt, 2); // (nil) + mtree_test_store(mt , 0, (void *)0x1); // 0 + mtree_test_store(mt , 0, (void *)0x1); // 0 + mtree_test_erase(mt, 2); // 0x5 + mtree_test_store(mt , 2, (void *)0x5); // 0 + mtree_test_erase(mt, 2); // (nil) + mtree_test_insert(mt, 2, (void *)0x5); // 0 + mtree_test_insert_range(mt, 1, 2, (void *)0x3); // 0 + mtree_test_erase(mt, 0); // 0x5 + mtree_test_erase(mt, 2); // 0x1 + mtree_test_store(mt , 0, (void *)0x1); // -17 + mtree_test_load(mt, 112); // 0x5 + mtree_test_store_range(mt, 110, 12, (void *)0xdd); // 0 + mtree_test_store(mt , 2, (void *)0x5); // -22 + mtree_test_load(mt, 110); // (nil) + mtree_test_insert_range(mt, 4, 71, (void *)0x9); // 0 + mtree_test_load(mt, 2); // (nil) + mtree_test_store(mt , 2, (void *)0x5); // 0 + mtree_test_insert_range(mt, 11, 22, (void *)0x17); // 0 + mtree_test_erase(mt, 12); // 0x5 + mtree_test_store(mt , 2, (void *)0x5); // -17 + mtree_test_load(mt, 22); // 0x9 } static DEFINE_MTREE(tree);