[1/2] maple_tree: Fix 32 bit mas_next testing

Message ID 20230712173916.168805-1-Liam.Howlett@oracle.com
State New
Headers
Series [1/2] maple_tree: Fix 32 bit mas_next testing |

Commit Message

Liam R. Howlett July 12, 2023, 5:39 p.m. UTC
  The test setup of mas_next is dependent on node entry size to create a 2
level tree, but the tests did not account for this in the expected value
when shifting beyond the scope of the tree.

Fix this by setting up the test to succeed depending on the node
entries which is dependent on the 32/64 bit setup.

Reported-by: Geert Uytterhoeven <geert@linux-m68k.org>
Link: https://lore.kernel.org/linux-mm/CAMuHMdV4T53fOw7VPoBgPR7fP6RYqf=CBhD_y_vOg53zZX_DnA@mail.gmail.com/
Fixes: 120b116208a0 ("maple_tree: reorganize testing to restore module testing")
Signed-off-by: Liam R. Howlett <Liam.Howlett@oracle.com>
---
 lib/test_maple_tree.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)
  

Comments

Geert Uytterhoeven July 13, 2023, 7:47 a.m. UTC | #1
On Wed, Jul 12, 2023 at 7:39 PM Liam R. Howlett <Liam.Howlett@oracle.com> wrote:
> The test setup of mas_next is dependent on node entry size to create a 2
> level tree, but the tests did not account for this in the expected value
> when shifting beyond the scope of the tree.
>
> Fix this by setting up the test to succeed depending on the node
> entries which is dependent on the 32/64 bit setup.
>
> Reported-by: Geert Uytterhoeven <geert@linux-m68k.org>
> Link: https://lore.kernel.org/linux-mm/CAMuHMdV4T53fOw7VPoBgPR7fP6RYqf=CBhD_y_vOg53zZX_DnA@mail.gmail.com/

s/Link/Closes/

> Fixes: 120b116208a0 ("maple_tree: reorganize testing to restore module testing")
> Signed-off-by: Liam R. Howlett <Liam.Howlett@oracle.com>

On ARAnyM:

    TEST STARTING

    maple_tree: 3804524 of 3804524 tests passed

Tested-by: Geert Uytterhoeven <geert@linux-m68k.org>

Gr{oetje,eeting}s,

                        Geert
  

Patch

diff --git a/lib/test_maple_tree.c b/lib/test_maple_tree.c
index 9f60e0c4cc8c..3207c2107918 100644
--- a/lib/test_maple_tree.c
+++ b/lib/test_maple_tree.c
@@ -1963,13 +1963,16 @@  static noinline void __init next_prev_test(struct maple_tree *mt)
 						   725};
 	static const unsigned long level2_32[] = { 1747, 2000, 1750, 1755,
 						   1760, 1765};
+	unsigned long last_index;
 
 	if (MAPLE_32BIT) {
 		nr_entries = 500;
 		level2 = level2_32;
+		last_index = 0x138e;
 	} else {
 		nr_entries = 200;
 		level2 = level2_64;
+		last_index = 0x7d6;
 	}
 
 	for (i = 0; i <= nr_entries; i++)
@@ -2076,7 +2079,7 @@  static noinline void __init next_prev_test(struct maple_tree *mt)
 
 	val = mas_next(&mas, ULONG_MAX);
 	MT_BUG_ON(mt, val != NULL);
-	MT_BUG_ON(mt, mas.index != 0x7d6);
+	MT_BUG_ON(mt, mas.index != last_index);
 	MT_BUG_ON(mt, mas.last != ULONG_MAX);
 
 	val = mas_prev(&mas, 0);