diff options
Diffstat (limited to 'mm/memory_hotplug.c')
-rw-r--r-- | mm/memory_hotplug.c | 23 |
1 files changed, 5 insertions, 18 deletions
diff --git a/mm/memory_hotplug.c b/mm/memory_hotplug.c index b63d7d1239df..b93c88125766 100644 --- a/mm/memory_hotplug.c +++ b/mm/memory_hotplug.c @@ -348,27 +348,20 @@ 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()/memblock_virt_alloc_node_nopanic() */ -static int __ref ensure_zone_is_initialized(struct zone *zone, +static void __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); - - return 0; + init_currently_empty_zone(zone, start_pfn, num_pages); } static int __meminit move_pfn_range_left(struct zone *z1, struct zone *z2, unsigned long start_pfn, unsigned long end_pfn) { - int ret; unsigned long flags; unsigned long z1_start_pfn; - ret = ensure_zone_is_initialized(z1, start_pfn, end_pfn - start_pfn); - if (ret) - return ret; + ensure_zone_is_initialized(z1, start_pfn, end_pfn - start_pfn); pgdat_resize_lock(z1->zone_pgdat, &flags); @@ -404,13 +397,10 @@ out_fail: static int __meminit move_pfn_range_right(struct zone *z1, struct zone *z2, unsigned long start_pfn, unsigned long end_pfn) { - int ret; unsigned long flags; unsigned long z2_end_pfn; - ret = ensure_zone_is_initialized(z2, start_pfn, end_pfn - start_pfn); - if (ret) - return ret; + ensure_zone_is_initialized(z2, start_pfn, end_pfn - start_pfn); pgdat_resize_lock(z1->zone_pgdat, &flags); @@ -481,12 +471,9 @@ static int __meminit __add_zone(struct zone *zone, unsigned long phys_start_pfn) int nid = pgdat->node_id; int zone_type; unsigned long flags, pfn; - int ret; zone_type = zone - pgdat->node_zones; - ret = ensure_zone_is_initialized(zone, phys_start_pfn, nr_pages); - if (ret) - return ret; + ensure_zone_is_initialized(zone, phys_start_pfn, nr_pages); pgdat_resize_lock(zone->zone_pgdat, &flags); grow_zone_span(zone, phys_start_pfn, phys_start_pfn + nr_pages); |