The patch titled Subject: mm: remove return value from init_currently_empty_zone() has been added to the -mm tree. Its filename is mm-remove-return-value-from-init_currently_empty_zone.patch This patch should soon appear at http://ozlabs.org/~akpm/mmots/broken-out/mm-remove-return-value-from-init_currently_empty_zone.patch and later at http://ozlabs.org/~akpm/mmotm/broken-out/mm-remove-return-value-from-init_currently_empty_zone.patch Before you just go and hit "reply", please: a) Consider who else should be cc'ed b) Prefer to cc a suitable mailing list as well c) Ideally: find the original patch on the mailing list and do a reply-to-all to that, adding suitable additional cc's *** Remember to use Documentation/SubmitChecklist when testing your code *** The -mm tree is included into linux-next and is updated there every 3-4 working days ------------------------------------------------------ From: Michal Hocko <mhocko@xxxxxxxx> Subject: mm: remove return value from init_currently_empty_zone() init_currently_empty_zone doesn't have any error to return yet it is still an int and callers try to be defensive and try to handle potential error. Remove this nonsense and simplify all callers. This patch shouldn't have any visible effect Link: http://lkml.kernel.org/r/20170330115454.32154-4-mhocko@xxxxxxxxxx Signed-off-by: Michal Hocko <mhocko@xxxxxxxx> Cc: "H. Peter Anvin" <hpa@xxxxxxxxx> Cc: "Luck, Tony" <tony.luck@xxxxxxxxx> Cc: <slaoub@xxxxxxxxx> Cc: Andi Kleen <ak@xxxxxxxxxxxxxxx> Cc: Andrea Arcangeli <aarcange@xxxxxxxxxx> Cc: Benjamin Herrenschmidt <benh@xxxxxxxxxxxxxxxxxxx> Cc: Chris Metcalf <cmetcalf@xxxxxxxxxxxx> Cc: Dan Williams <dan.j.williams@xxxxxxxxx> Cc: Daniel Kiper <daniel.kiper@xxxxxxxxxx> Cc: David Rientjes <rientjes@xxxxxxxxxx> Cc: Heiko Carstens <heiko.carstens@xxxxxxxxxx> Cc: Igor Mammedov <imammedo@xxxxxxxxxx> Cc: Ingo Molnar <mingo@xxxxxxx> Cc: Joonsoo Kim <js1304@xxxxxxxxx> Cc: Kani Toshimitsu <toshi.kani@xxxxxxx> Cc: Lai Jiangshan <laijs@xxxxxxxxxxxxxx> Cc: Martin Schwidefsky <schwidefsky@xxxxxxxxxx> Cc: Mel Gorman <mgorman@xxxxxxx> Cc: Reza Arbab <arbab@xxxxxxxxxxxxxxxxxx> Cc: Tang Chen <tangchen@xxxxxxxxxxxxxx> Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx> Cc: Vitaly Kuznetsov <vkuznets@xxxxxxxxxx> Cc: Vlastimil Babka <vbabka@xxxxxxx> Cc: Xishi Qiu <qiuxishi@xxxxxxxxxx> Cc: Yasuaki Ishimatsu <yasu.isimatu@xxxxxxxxx> Cc: Zhang Zhen <zhenzhang.zhang@xxxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- include/linux/mmzone.h | 2 +- mm/memory_hotplug.c | 25 ++++++------------------- mm/page_alloc.c | 6 ++---- 3 files changed, 9 insertions(+), 24 deletions(-) diff -puN include/linux/mmzone.h~mm-remove-return-value-from-init_currently_empty_zone include/linux/mmzone.h --- a/include/linux/mmzone.h~mm-remove-return-value-from-init_currently_empty_zone +++ a/include/linux/mmzone.h @@ -768,7 +768,7 @@ enum memmap_context { MEMMAP_EARLY, MEMMAP_HOTPLUG, }; -extern int init_currently_empty_zone(struct zone *zone, unsigned long start_pfn, +extern void init_currently_empty_zone(struct zone *zone, unsigned long start_pfn, unsigned long size); extern void lruvec_init(struct lruvec *lruvec); diff -puN mm/memory_hotplug.c~mm-remove-return-value-from-init_currently_empty_zone mm/memory_hotplug.c --- a/mm/memory_hotplug.c~mm-remove-return-value-from-init_currently_empty_zone +++ a/mm/memory_hotplug.c @@ -348,27 +348,20 @@ static void fix_zone_id(struct zone *zon 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_empty(zone)) - return init_currently_empty_zone(zone, start_pfn, num_pages); - - return 0; + if (!zone_is_empty(zone)) + 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 z 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); diff -puN mm/page_alloc.c~mm-remove-return-value-from-init_currently_empty_zone mm/page_alloc.c --- a/mm/page_alloc.c~mm-remove-return-value-from-init_currently_empty_zone +++ a/mm/page_alloc.c @@ -5517,7 +5517,7 @@ static __meminit void zone_pcp_init(stru zone_batchsize(zone)); } -int __meminit init_currently_empty_zone(struct zone *zone, +void __meminit init_currently_empty_zone(struct zone *zone, unsigned long zone_start_pfn, unsigned long size) { @@ -5991,7 +5991,6 @@ static void __paginginit free_area_init_ { enum zone_type j; int nid = pgdat->node_id; - int ret; pgdat_resize_init(pgdat); #ifdef CONFIG_NUMA_BALANCING @@ -6073,8 +6072,7 @@ static void __paginginit free_area_init_ set_pageblock_order(); setup_usemap(pgdat, zone, zone_start_pfn, size); - ret = init_currently_empty_zone(zone, zone_start_pfn, size); - BUG_ON(ret); + init_currently_empty_zone(zone, zone_start_pfn, size); memmap_init(size, nid, j, zone_start_pfn); } } _ Patches currently in -mm which might be from mhocko@xxxxxxxx are mm-move-mm_percpu_wq-initialization-earlier.patch lockdep-allow-to-disable-reclaim-lockup-detection.patch xfs-abstract-pf_fstrans-to-pf_memalloc_nofs.patch mm-introduce-memalloc_nofs_saverestore-api.patch xfs-use-memalloc_nofs_saverestore-instead-of-memalloc_noio.patch jbd2-mark-the-transaction-context-with-the-scope-gfp_nofs-context.patch jbd2-make-the-whole-kjournald2-kthread-nofs-safe.patch mm-move-pcp-and-lru-pcp-drainging-into-single-wq.patch mm-get-rid-of-zone_is_initialized.patch mm-tile-drop-arch_addremove_memory.patch mm-remove-return-value-from-init_currently_empty_zone.patch mm-memory_hotplug-use-node-instead-of-zone-in-can_online_high_movable.patch mm-memory_hotplug-do-not-associate-hotadded-memory-to-zones-until-online.patch mm-memory_hotplug-remove-unused-cruft-after-memory-hotplug-rework.patch mm-introduce-kvalloc-helpers.patch mm-support-__gfp_repeat-in-kvmalloc_node-for-32kb.patch rhashtable-simplify-a-strange-allocation-pattern.patch ila-simplify-a-strange-allocation-pattern.patch xattr-zero-out-memory-copied-to-userspace-in-getxattr.patch treewide-use-kvalloc-rather-than-opencoded-variants.patch net-use-kvmalloc-with-__gfp_repeat-rather-than-open-coded-variant.patch md-use-kvmalloc-rather-than-opencoded-variant.patch bcache-use-kvmalloc.patch mm-vmalloc-use-__gfp_highmem-implicitly.patch -- To unsubscribe from this list: send the line "unsubscribe mm-commits" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html