From 5da529d91413130f20a02e1aa7284d5ff6a76bab Mon Sep 17 00:00:00 2001 From: Cody P Schafer Date: Fri, 22 Feb 2013 16:35:30 -0800 Subject: [PATCH] --- yaml --- r: 356602 b: refs/heads/master c: f6bbb78e5bcbe45cfb8ed0d7ecd1549f4eb46a30 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/mm/memory_hotplug.c | 11 +++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index 8f02c570566f..502315e1af46 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: b5e6a5a2724bc9f0b121062ab730d48731ae83e3 +refs/heads/master: f6bbb78e5bcbe45cfb8ed0d7ecd1549f4eb46a30 diff --git a/trunk/mm/memory_hotplug.c b/trunk/mm/memory_hotplug.c index 8b3235eedf3d..6e625f60dbcc 100644 --- a/trunk/mm/memory_hotplug.c +++ b/trunk/mm/memory_hotplug.c @@ -282,6 +282,17 @@ static void fix_zone_id(struct zone *zone, unsigned long start_pfn, set_page_links(pfn_to_page(pfn), zid, nid, pfn); } +/* Can fail with -ENOMEM from allocating a wait table with vmalloc() or + * alloc_bootmem_node_nopanic() */ +static int __ref ensure_zone_is_initialized(struct zone *zone, + unsigned long start_pfn, unsigned long num_pages) +{ + if (!zone_is_initialized(zone)) + return init_currently_empty_zone(zone, start_pfn, num_pages, + MEMMAP_HOTPLUG); + return 0; +} + static int __meminit move_pfn_range_left(struct zone *z1, struct zone *z2, unsigned long start_pfn, unsigned long end_pfn) {