Linux 6.9-rc1
[linux-2.6-microblaze.git] / lib / test_meminit.c
index c95db11..0dc1738 100644 (file)
@@ -67,17 +67,24 @@ static int __init do_alloc_pages_order(int order, int *total_failures)
        size_t size = PAGE_SIZE << order;
 
        page = alloc_pages(GFP_KERNEL, order);
+       if (!page)
+               goto err;
        buf = page_address(page);
        fill_with_garbage(buf, size);
        __free_pages(page, order);
 
        page = alloc_pages(GFP_KERNEL, order);
+       if (!page)
+               goto err;
        buf = page_address(page);
        if (count_nonzero_bytes(buf, size))
                (*total_failures)++;
        fill_with_garbage(buf, size);
        __free_pages(page, order);
        return 1;
+err:
+       (*total_failures)++;
+       return 1;
 }
 
 /* Test the page allocator by calling alloc_pages with different orders. */
@@ -86,7 +93,7 @@ static int __init test_pages(int *total_failures)
        int failures = 0, num_tests = 0;
        int i;
 
-       for (i = 0; i < 10; i++)
+       for (i = 0; i < NR_PAGE_ORDERS; i++)
                num_tests += do_alloc_pages_order(i, &failures);
 
        REPORT_FAILURES_IN_FN();
@@ -100,15 +107,22 @@ static int __init do_kmalloc_size(size_t size, int *total_failures)
        void *buf;
 
        buf = kmalloc(size, GFP_KERNEL);
+       if (!buf)
+               goto err;
        fill_with_garbage(buf, size);
        kfree(buf);
 
        buf = kmalloc(size, GFP_KERNEL);
+       if (!buf)
+               goto err;
        if (count_nonzero_bytes(buf, size))
                (*total_failures)++;
        fill_with_garbage(buf, size);
        kfree(buf);
        return 1;
+err:
+       (*total_failures)++;
+       return 1;
 }
 
 /* Test vmalloc() with given parameters. */
@@ -117,15 +131,22 @@ static int __init do_vmalloc_size(size_t size, int *total_failures)
        void *buf;
 
        buf = vmalloc(size);
+       if (!buf)
+               goto err;
        fill_with_garbage(buf, size);
        vfree(buf);
 
        buf = vmalloc(size);
+       if (!buf)
+               goto err;
        if (count_nonzero_bytes(buf, size))
                (*total_failures)++;
        fill_with_garbage(buf, size);
        vfree(buf);
        return 1;
+err:
+       (*total_failures)++;
+       return 1;
 }
 
 /* Test kmalloc()/vmalloc() by allocating objects of different sizes. */