Merge tag 'for-linus' of git://git.armlinux.org.uk/~rmk/linux-arm
[platform/kernel/linux-starfive.git] / lib / test_meminit.c
index c95db11..60e1984 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. */
@@ -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. */