lib/test_meminit: fix off-by-one error in test_pages()
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 12 Oct 2023 08:17:39 +0000 (10:17 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 15 Oct 2023 16:32:41 +0000 (18:32 +0200)
commit efb78fa86e95 ("lib/test_meminit: allocate pages up to order
MAX_ORDER") works great in kernels 6.4 and newer thanks to commit
23baf831a32c ("mm, treewide: redefine MAX_ORDER sanely"), but for older
kernels, the loop is off by one, which causes crashes when the test
runs.

Fix this up by changing "<= MAX_ORDER" "< MAX_ORDER" to allow the test
to work properly for older kernel branches.

Fixes: 421855d0d24d ("lib/test_meminit: allocate pages up to order MAX_ORDER")
Cc: Andrew Donnellan <ajd@linux.ibm.com>
Cc: Alexander Potapenko <glider@google.com>
Cc: Xiaoke Wang <xkernel.wang@foxmail.com>
Cc: <stable@vger.kernel.org>
Cc: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
lib/test_meminit.c

index 0ae3522..85d8dd8 100644 (file)
@@ -93,7 +93,7 @@ static int __init test_pages(int *total_failures)
        int failures = 0, num_tests = 0;
        int i;
 
-       for (i = 0; i <= MAX_ORDER; i++)
+       for (i = 0; i < MAX_ORDER; i++)
                num_tests += do_alloc_pages_order(i, &failures);
 
        REPORT_FAILURES_IN_FN();