aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/linux/bootmem.h2
-rw-r--r--mm/page_alloc.c7
2 files changed, 6 insertions, 3 deletions
diff --git a/include/linux/bootmem.h b/include/linux/bootmem.h
index b8613e806aa9..01eca1794e14 100644
--- a/include/linux/bootmem.h
+++ b/include/linux/bootmem.h
@@ -111,6 +111,8 @@ extern void *__alloc_bootmem_low_node(pg_data_t *pgdat,
111 __alloc_bootmem_nopanic(x, PAGE_SIZE, __pa(MAX_DMA_ADDRESS)) 111 __alloc_bootmem_nopanic(x, PAGE_SIZE, __pa(MAX_DMA_ADDRESS))
112#define alloc_bootmem_node(pgdat, x) \ 112#define alloc_bootmem_node(pgdat, x) \
113 __alloc_bootmem_node(pgdat, x, SMP_CACHE_BYTES, __pa(MAX_DMA_ADDRESS)) 113 __alloc_bootmem_node(pgdat, x, SMP_CACHE_BYTES, __pa(MAX_DMA_ADDRESS))
114#define alloc_bootmem_node_nopanic(pgdat, x) \
115 __alloc_bootmem_node_nopanic(pgdat, x, SMP_CACHE_BYTES, __pa(MAX_DMA_ADDRESS))
114#define alloc_bootmem_pages_node(pgdat, x) \ 116#define alloc_bootmem_pages_node(pgdat, x) \
115 __alloc_bootmem_node(pgdat, x, PAGE_SIZE, __pa(MAX_DMA_ADDRESS)) 117 __alloc_bootmem_node(pgdat, x, PAGE_SIZE, __pa(MAX_DMA_ADDRESS))
116#define alloc_bootmem_pages_node_nopanic(pgdat, x) \ 118#define alloc_bootmem_pages_node_nopanic(pgdat, x) \
diff --git a/mm/page_alloc.c b/mm/page_alloc.c
index 9f8a97b9a350..454191a25173 100644
--- a/mm/page_alloc.c
+++ b/mm/page_alloc.c
@@ -3564,7 +3564,7 @@ int zone_wait_table_init(struct zone *zone, unsigned long zone_size_pages)
3564 3564
3565 if (!slab_is_available()) { 3565 if (!slab_is_available()) {
3566 zone->wait_table = (wait_queue_head_t *) 3566 zone->wait_table = (wait_queue_head_t *)
3567 alloc_bootmem_node(pgdat, alloc_size); 3567 alloc_bootmem_node_nopanic(pgdat, alloc_size);
3568 } else { 3568 } else {
3569 /* 3569 /*
3570 * This case means that a zone whose size was 0 gets new memory 3570 * This case means that a zone whose size was 0 gets new memory
@@ -4141,7 +4141,8 @@ static void __init setup_usemap(struct pglist_data *pgdat,
4141 unsigned long usemapsize = usemap_size(zonesize); 4141 unsigned long usemapsize = usemap_size(zonesize);
4142 zone->pageblock_flags = NULL; 4142 zone->pageblock_flags = NULL;
4143 if (usemapsize) 4143 if (usemapsize)
4144 zone->pageblock_flags = alloc_bootmem_node(pgdat, usemapsize); 4144 zone->pageblock_flags = alloc_bootmem_node_nopanic(pgdat,
4145 usemapsize);
4145} 4146}
4146#else 4147#else
4147static inline void setup_usemap(struct pglist_data *pgdat, 4148static inline void setup_usemap(struct pglist_data *pgdat,
@@ -4307,7 +4308,7 @@ static void __init_refok alloc_node_mem_map(struct pglist_data *pgdat)
4307 size = (end - start) * sizeof(struct page); 4308 size = (end - start) * sizeof(struct page);
4308 map = alloc_remap(pgdat->node_id, size); 4309 map = alloc_remap(pgdat->node_id, size);
4309 if (!map) 4310 if (!map)
4310 map = alloc_bootmem_node(pgdat, size); 4311 map = alloc_bootmem_node_nopanic(pgdat, size);
4311 pgdat->node_mem_map = map + (pgdat->node_start_pfn - start); 4312 pgdat->node_mem_map = map + (pgdat->node_start_pfn - start);
4312 } 4313 }
4313#ifndef CONFIG_NEED_MULTIPLE_NODES 4314#ifndef CONFIG_NEED_MULTIPLE_NODES