diff options
Diffstat (limited to 'mm/page_alloc.c')
-rw-r--r-- | mm/page_alloc.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/mm/page_alloc.c b/mm/page_alloc.c index ec250453f5e8..11a5f50efd97 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c | |||
@@ -6431,10 +6431,14 @@ static void __ref setup_usemap(struct pglist_data *pgdat, | |||
6431 | { | 6431 | { |
6432 | unsigned long usemapsize = usemap_size(zone_start_pfn, zonesize); | 6432 | unsigned long usemapsize = usemap_size(zone_start_pfn, zonesize); |
6433 | zone->pageblock_flags = NULL; | 6433 | zone->pageblock_flags = NULL; |
6434 | if (usemapsize) | 6434 | if (usemapsize) { |
6435 | zone->pageblock_flags = | 6435 | zone->pageblock_flags = |
6436 | memblock_alloc_node_nopanic(usemapsize, | 6436 | memblock_alloc_node_nopanic(usemapsize, |
6437 | pgdat->node_id); | 6437 | pgdat->node_id); |
6438 | if (!zone->pageblock_flags) | ||
6439 | panic("Failed to allocate %ld bytes for zone %s pageblock flags on node %d\n", | ||
6440 | usemapsize, zone->name, pgdat->node_id); | ||
6441 | } | ||
6438 | } | 6442 | } |
6439 | #else | 6443 | #else |
6440 | static inline void setup_usemap(struct pglist_data *pgdat, struct zone *zone, | 6444 | static inline void setup_usemap(struct pglist_data *pgdat, struct zone *zone, |
@@ -6664,6 +6668,9 @@ static void __ref alloc_node_mem_map(struct pglist_data *pgdat) | |||
6664 | end = ALIGN(end, MAX_ORDER_NR_PAGES); | 6668 | end = ALIGN(end, MAX_ORDER_NR_PAGES); |
6665 | size = (end - start) * sizeof(struct page); | 6669 | size = (end - start) * sizeof(struct page); |
6666 | map = memblock_alloc_node_nopanic(size, pgdat->node_id); | 6670 | map = memblock_alloc_node_nopanic(size, pgdat->node_id); |
6671 | if (!map) | ||
6672 | panic("Failed to allocate %ld bytes for node %d memory map\n", | ||
6673 | size, pgdat->node_id); | ||
6667 | pgdat->node_mem_map = map + offset; | 6674 | pgdat->node_mem_map = map + offset; |
6668 | } | 6675 | } |
6669 | pr_debug("%s: node %d, pgdat %08lx, node_mem_map %08lx\n", | 6676 | pr_debug("%s: node %d, pgdat %08lx, node_mem_map %08lx\n", |