mirror of https://gitee.com/openkylin/linux.git
mm: introduce non panic alloc_bootmem
Straight forward variant of the existing __alloc_bootmem_node, only subsequent patch when allocating giant hugepages at boot -- don't want to panic if we can't allocate as many as the user asked for. Signed-off-by: Andi Kleen <ak@suse.de> Signed-off-by: Nick Piggin <npiggin@suse.de> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
5ced66c901
commit
b54bbf7b81
|
@ -89,6 +89,10 @@ extern void *__alloc_bootmem_node(pg_data_t *pgdat,
|
||||||
unsigned long size,
|
unsigned long size,
|
||||||
unsigned long align,
|
unsigned long align,
|
||||||
unsigned long goal);
|
unsigned long goal);
|
||||||
|
extern void *__alloc_bootmem_node_nopanic(pg_data_t *pgdat,
|
||||||
|
unsigned long size,
|
||||||
|
unsigned long align,
|
||||||
|
unsigned long goal);
|
||||||
extern unsigned long init_bootmem_node(pg_data_t *pgdat,
|
extern unsigned long init_bootmem_node(pg_data_t *pgdat,
|
||||||
unsigned long freepfn,
|
unsigned long freepfn,
|
||||||
unsigned long startpfn,
|
unsigned long startpfn,
|
||||||
|
|
12
mm/bootmem.c
12
mm/bootmem.c
|
@ -578,6 +578,18 @@ void * __init alloc_bootmem_section(unsigned long size,
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
void * __init __alloc_bootmem_node_nopanic(pg_data_t *pgdat, unsigned long size,
|
||||||
|
unsigned long align, unsigned long goal)
|
||||||
|
{
|
||||||
|
void *ptr;
|
||||||
|
|
||||||
|
ptr = alloc_bootmem_core(pgdat->bdata, size, align, goal, 0);
|
||||||
|
if (ptr)
|
||||||
|
return ptr;
|
||||||
|
|
||||||
|
return __alloc_bootmem_nopanic(size, align, goal);
|
||||||
|
}
|
||||||
|
|
||||||
#ifndef ARCH_LOW_ADDRESS_LIMIT
|
#ifndef ARCH_LOW_ADDRESS_LIMIT
|
||||||
#define ARCH_LOW_ADDRESS_LIMIT 0xffffffffUL
|
#define ARCH_LOW_ADDRESS_LIMIT 0xffffffffUL
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Reference in New Issue