1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
#include <linux/types.h> #include <linux/init.h> #include <linux/slab.h> #include <linux/bootmem.h> #include <linux/string.h> #include <asm/system.h> void * __init_refok zalloc_maybe_bootmem(size_t size, gfp_t mask) { void *p; if (mem_init_done) p = kzalloc(size, mask); else { p = alloc_bootmem(size); if (p) memset(p, 0, size); } return p; }