diff options
-rw-r--r-- | include/linux/bootmem.h | 2 | ||||
-rw-r--r-- | mm/page_alloc.c | 7 |
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 |
4147 | static inline void setup_usemap(struct pglist_data *pgdat, | 4148 | static 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 |