Messages in this thread Patch in this message |  | | From | Cody P Schafer <> | Subject | [PATCH 7/9] mm: add helper ensure_zone_is_initialized() | Date | Thu, 17 Jan 2013 14:52:59 -0800 |
| |
From: Cody P Schafer <jmesmon@gmail.com>
ensure_zone_is_initialized() checks if a zone is in a empty & not initialized state (typically occuring after it is created in memory hotplugging), and, if so, calls init_currently_empty_zone() to initialize the zone.
Signed-off-by: Cody P Schafer <cody@linux.vnet.ibm.com> --- mm/memory_hotplug.c | 11 +++++++++++ 1 file changed, 11 insertions(+)
diff --git a/mm/memory_hotplug.c b/mm/memory_hotplug.c index c62bcca..bede456 100644 --- a/mm/memory_hotplug.c +++ b/mm/memory_hotplug.c @@ -253,6 +253,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) { -- 1.8.0.3
|  |