Back to home page

OSCL-LXR

 
 

    


0001 // SPDX-License-Identifier: GPL-2.0
0002 #include <linux/types.h>
0003 #include <linux/init.h>
0004 #include <linux/slab.h>
0005 #include <linux/memblock.h>
0006 #include <linux/string.h>
0007 #include <asm/setup.h>
0008 
0009 
0010 void * __ref zalloc_maybe_bootmem(size_t size, gfp_t mask)
0011 {
0012     void *p;
0013 
0014     if (slab_is_available())
0015         p = kzalloc(size, mask);
0016     else {
0017         p = memblock_alloc(size, SMP_CACHE_BYTES);
0018         if (!p)
0019             panic("%s: Failed to allocate %zu bytes\n", __func__,
0020                   size);
0021     }
0022     return p;
0023 }